我只是想在Android上保持一个方向对话框,我以为这很简单。但它并没有像我想象的那样工作。我有一个简单的成员类叫做StartMonitoringDialogFragment
,它继承了DialogFragment
。在我的活动中,我像这样显示它:
StartMonitoringDialogFragment dialog = new StartMonitoringDialogFragment();
dialog.show(getFragmentManager(), getClass().getName() + "StartDialog");
然而,当屏幕方向改变时,对话框并没有出现。我注意到片段的onCreateView在方向改变后会被正确地调用,并且正在创建和正确返回其视图(片段的实例变量仍然已设置),但是没有显示任何内容。它不应该被显示吗?我需要手动跟踪它吗?
Fragment dialog;
if(savedInstanceState != null && (dialog = getFragmentManager().findFragmentByTag(getClass().getName() + "StartDialog")) != null) {
((DialogFragment)dialog).show(getFragmentManager(), getClass().getName() + "StartDialog");
}
我在onCreate(Bundle savedInstanceState)
方法中添加了一些代码,并且起初它似乎可以工作,然而现在我不断地遇到一个异常:java.lang.IllegalStateException: Fragment already added
。有什么想法该怎么办?