我使用此代码创建了一个 DialogFragment
Fragment prev = getSupportFragmentManager().findFragmentByTag(DIALOG_SUBMISSIOIN_RESPONSE);
AlertDialogFragment alert = AlertDialogFragment.newInstance(text, getString(R.string.worklog_alert_ok));
alert.show(getSupportFragmentManager(), DIALOG_SUBMISSIOIN_RESPONSE);
其中 AlertDialogFragment 是一个简单的 DialogFragment 类,它创建新的 AlertDialog.Builder(..)。
然后我想删除对话框
Fragment prev = getSupportFragmentManager().findFragmentByTag(dialogTag);
if (prev != null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.remove(prev).commit();
}
Log.d(TAG, "dialog removed " + getSupportFragmentManager().findFragmentByTag(dialogTag) + ", isremoving = " + prev.isRemoving());
但是,在最后一条 Log.d 消息中,我仍然得到该片段(即getSupportFragmentManager().findFragmentByTag(dialogTag)
不为空,但返回有效片段)。
如何强制立即删除对话框?这对我来说很重要,因为我有在这个函数之后执行的代码,它会检查对话框是否存在,然后什么都不做,如果不存在,则重新创建它。但是,它永远不会重新创建它,因为getSupportFragmentManager().findFragmentByTag(dialogTag)
返回 valid DialogFragment
。
我正在使用Android兼容包,Android 2.2版