【发布时间】:2019-07-18 08:05:58
【问题描述】:
我正在显示来自经理的 DialogFragment。 DialogFragment 显示多次。
我想知道有没有办法从事务中检查这个片段是否已经显示。所以不要显示它。
@Override
public void show(FragmentManager manager, String tag) {
try {
FragmentTransaction ft = manager.beginTransaction();
Fragment prev = manager.findFragmentByTag(tag);
if (prev == null) {
ft.add(this, tag);
///ft.addToBackStack(tag);
ft.commitAllowingStateLoss();
}
} catch (IllegalStateException e) {
Log.d("ABSDIALOGFRAG", "Exception", e);
}
}
我把我的片段称为
CustomerFeedbackDialog feedbackDialog = CustomerFeedbackDialog.newInstance(genaric.getData(), type);
feedbackDialog.show(getSupportFragmentManager(), "feedbackDialog");
我调用了 findFragmentByTag 但它始终为空。我不想显示已经显示的片段。否则它重复。多个对话框片段打开
我知道我可以使用 sharedprefs 中的标志来做到这一点
找到编辑解决方案
感谢您的帮助。问题解决了,我在下面发布了答案
【问题讨论】:
标签: android-fragments android-dialogfragment fragmenttransaction fragment-backstack