方向更改后停止显示对话框

时间:2015-10-10 19:51:11

标签: android dialog orientation dismiss orientation-changes

我有一个自定义的Dialog类,我在其中实例化对话框

dg = new Dialog(con); 
dg.requestWindowFeature(Window.FEATURE_NO_TITLE);
Window window = dg.getWindow();
window.setBackgroundDrawableResource(android.R.color.transparent);
dg.setContentView(R.layout.listview_dialog_layout); 

//set views etc..

dg.show();

如果在显示对话框的活动中发生方向更改,则活动数据更改将丢失,但对话框仍保持打开状态。我希望在方向更改时解除对话框,就像通过AlertDialog.Builder创建的默认Dialog一样。我怎么能这样做?

我更喜欢在自定义Dialog类中实现的解决方案,而不是去每个活动并输入dialog.dismiss();在活动暂停或停止

1 个答案:

答案 0 :(得分:1)

请参阅我的回答here

此方法可让您在不引用活动的情况下检测对话框的方向更改。但是,它需要在对话框中使用自定义视图。如果可以将自定义对话框类的实例传递给自定义视图,则可以直接在自定义视图的onConfigurationChanged()方法中调用dialog.dismiss();