在创建对话框片段时忽略对话框片段
问题描述:
DialogFragment
的创建生命周期中的哪个点可以放心地关闭它,以便它永远不会被用户看到?我的意图是,当用户旋转屏幕时,DialogFragment
会再次经历创建生命周期,我宁愿选择性地重新创建它。如果condition x
,请重新创建DialogFragment
,如果condition y
,只是在它仍然被重新创建时解雇它,以便用户永远不会在新的方向上看到它。那么,我可以放心地说,dismiss
?在创建对话框片段时忽略对话框片段
答
你可以尝试控制DialogFragment
生活在onConfigureChanged(...)
:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Fragment yourDialog = getFragmentManager().findFragmentByTag("dialog_tag");
if(yourDialog != null) {
DialogFragment df = (DialogFragment) yourDialog;
df.dismiss();
}
if(condition x)
{
//here recreate your dialog
}
}
希望这种想法的帮助!
你可以检查它是否显示之前打电话解雇? – Blackbelt 2015-03-19 09:48:25
@Blackbelt,我会在那里放? 'onViewCreated'? – Aks 2015-03-19 09:50:34
或者你可以在显示对话框 – Blackbelt 2015-03-19 09:54:28