【发布时间】:2015-08-23 21:19:44
【问题描述】:
我有一个实用程序类,它会向我的应用程序中的活动返回一个对话框。因为我需要让用户在外部点击时关闭对话框。所以在这里我像这样使用
lDialog.setCancelable( true );
lDialog.setCanceledOnTouchOutside( true );
即使我也检查了这些标志
lDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
lDialog.getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
但这对我不起作用..我参考了太多来自 SOF 的答案,但不幸的是,没有什么对我有用..
这是我迄今为止尝试过的全套代码。除了外部触摸关闭事件外,它工作完美..
public static Dialog createDialog( Context context,
int viewId )
{
Dialog lDialog = new Dialog( context,
AlertDialog.THEME_HOLO_LIGHT );
lDialog.getWindow().setBackgroundDrawable( new ColorDrawable( 1 ) );
lDialog.requestWindowFeature( Window.FEATURE_NO_TITLE );
lDialog.setContentView( viewId );
lDialog.setCancelable( true );
lDialog.setCanceledOnTouchOutside( true );
lDialog.getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN );
return lDialog;
}
对不起我的英语不好!谢谢。
【问题讨论】:
标签: android dialog window android-alertdialog