在仍在创建对话碎片时解除对话碎片

时间:2015-03-19 09:47:07

标签: android android-fragments android-dialogfragment

DialogFragment的创建生命周期中的哪一点可以安全地解除它,以便用户永远不会看到它?我的意图是当用户旋转屏幕时,DialogFragment再次经历创建生命周期,我更喜欢有选择地重新创建它。如果condition x,请重新创建DialogFragment,如果condition y,只需在重新创建时将其关闭,以便用户永远不会在新方向中看到它。那么,在我的创建生命周期中,我可以安全地说,dismiss

1 个答案:

答案 0 :(得分:0)

您可以尝试控制DialogFragmentonConfigureChanged(...)的生命周期:

@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
     }
}

希望这个想法有所帮助!