gpt4 book ai didi

android - FragmentTransaction.add().commit() 和 DialogFragment.show() 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 08:36:58 25 4
gpt4 key购买 nike

要显示 DialogFragment,我可以使用以下两种方式:

        ProgressDialogFragment fragment = (ProgressDialogFragment) getFragmentManager().findFragmentByTag("progress_dialog");
if (fragment == null) {
fragment = ProgressDialogFragment.newInstance();
fragment.setCancelable(false);
getFragmentManager().beginTransaction()
.add(fragment, "progress_dialog")
.commitAllowingStateLoss();

}

            ProgressDialogFragment fragment = (ProgressDialogFragment) getFragmentManager().findFragmentByTag("progress_dialog");
if (fragment == null) {
fragment.show(getFragmentManager().beginTransaction(), "progress_dialog");
}

我应该在什么时候使用哪个?还是两者相同?

最佳答案

几乎都是一样的。 show 从您作为参数提供的 FragmentManager 中检索一个 transaction,并调用 add/commit,正如您在代码 fragment 中看到的那样

   public void show(FragmentManager manager, String tag) {
mDismissed = false;
mShownByMe = true;
FragmentTransaction ft = manager.beginTransaction();
ft.add(this, tag);
ft.commit();
}

唯一的区别是它们会在多次调用 show()

时重置一些标志

关于android - FragmentTransaction.add().commit() 和 DialogFragment.show() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com