Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 允许对DialogFragment进行外部触摸(Listview onitemclick不工作)_Android_Window_Touch_Dialogfragment - Fatal编程技术网

Android 允许对DialogFragment进行外部触摸(Listview onitemclick不工作)

Android 允许对DialogFragment进行外部触摸(Listview onitemclick不工作),android,window,touch,dialogfragment,Android,Window,Touch,Dialogfragment,当我显示对话框片段时,我希望外部元素可以单击 @Override public void onViewCreated(final View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); getView().post(new Runnable() { @Override public void run() {

当我显示对话框片段时,我希望外部元素可以单击

@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);


    getView().post(new Runnable() {

        @Override
        public void run() {

            Window dialogWindow = getDialog().getWindow();

            // Make the dialog possible to be outside touch
            dialogWindow.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
            dialogWindow.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

            getView().invalidate();
        }
    });
}

我在我的代码中使用了这一点,但listview和gridview的onitemclick在按钮单击的位置不起作用。请提供任何建议?

我喜欢为我的许多对话框创建一个完整的活动。给活动设置一个主题,使其看起来像一个对话框,这非常简单。在我的清单中,我列出了我的活动,如下所示:

  <activity
        android:name=".UserLogin"
        android:noHistory="true"
        android:screenOrientation="sensorLandscape"
        android:theme="@style/ActivityDialog"
        android:windowSoftInputMode="adjustPan" >
  </activity>

在my styles.xml中,我将主题定义为:

  <style name="ActivityDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@null</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowCloseOnTouchOutside">true</item>
  </style>

@android:彩色/透明
@空的
@空的
@空的
假的
真的
真的
真的

样式中的最后一项为您完成所有操作。打开或关闭它以管理在“对话框”外部的单击,设置
WindowManager.LayoutParams.FLAG\u NOT\u FOCUSABLE
标志,而不是
WindowManager.LayoutParams.FLAG\u NOT\u TOUCH\u model
标志,如下所示

window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);

这对我有用。刚刚使用的setStyle(STYLE_NO_INPUT,0);在dialogfragment:)的oncreate方法中,我可以单击外部元素,但dialogfragment中的视图没有响应:(