取消从另一个对话框片段启动的对话框片段会导致非法状态异常

时间:2019-01-01 06:20:58

标签: java android android-fragments android-dialogfragment

DialogFragment customCurrentDialogFragment; -> custom dialog

从另一个对话框片段(片段A)启动对话框:

FragmentManager fragmentManager = getFragmentManager();  
customCurrentDialogFragment = new CustomLoader();  
customCurrentDialogFragment.setCancelable(false);  
customCurrentDialogFragment.show(fragmentManager, "dialog");

解散片段A:

customCurrentDialogFragment.dismiss();

1 个答案:

答案 0 :(得分:3)

您可以使用DialogFragment的dismissAllowingStateLoss()方法。

由于使用片段管理器调用show()方法,因此可以使用dismissAllowingStateLoss()方法消除对话框片段。同时,如果您通过片段事务使用show()方法,则此方法将不起作用,因为popBackStack使用allowStateLoss = false

调用enqueueAction()