2015-03-19 155 views
0

DialogFragment的创建生命周期中的哪个点可以放心地关闭它,以便它永远不会被用户看到?我的意图是,当用户旋转屏幕时,DialogFragment会再次经历创建生命周期,我宁愿选择性地重新创建它。如果condition x,请重新创建DialogFragment,如果condition y,只是在它仍然被重新创建时解雇它,以便用户永远不会在新的方向上看到它。那么,我可以放心地说,dismiss在创建对话框片段时忽略对话框片段

+1

你可以检查它是否显示之前打电话解雇? – Blackbelt 2015-03-19 09:48:25

+0

@Blackbelt,我会在那里放? 'onViewCreated'? – Aks 2015-03-19 09:50:34

+0

或者你可以在显示对话框 – Blackbelt 2015-03-19 09:54:28

回答

0

你可以尝试控制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 
    } 
} 

希望这种想法的帮助!

0

您应该参考this了解Dialog Fragment的详细文档。

欲了解更多信息,请参阅this。希望这可以帮助你。