当我显示对话框片段时,我希望外部元素是可点击
的@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();
}
});
}
我在我的代码中使用它,但是列表视图和网格视图的 onitemClick 不起作用,因为按钮单击工作,请提供任何建议?
设置WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
标志而不是WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
标志
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
我喜欢
为我的许多对话框创建一个完整的活动。 为活动指定一个主题,使其看起来像一个对话框,这非常简单。 在我的清单中,我列出了我的活动,如下所示:
<activity
android:name=".UserLogin"
android:noHistory="true"
android:screenOrientation="sensorLandscape"
android:theme="@style/ActivityDialog"
android:windowSoftInputMode="adjustPan" >
</activity>
在我的风格.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>
样式中的最后一项为您完成所有操作。打开或关闭它以管理"对话框"之外的点击