关于 Fragment already added 问题的解决方案一般有以下几种:
方案一:使用findFragmentByTag
在Activity中使用FragmentManager的findFragmentByTag()方法来查找Fragment是否已经被添加。如果已经添加,则不需要重复添加,避免出现Fragment already added异常。
MyFragment fragment = (MyFragment) getFragmentManager().findFragmentByTag("MY_FRAGMENT");
if (fragment == null) {
fragment = new MyFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.container, fragment, "MY_FRAGMENT");
ft.commit();
}
方案二:使用replace替换Fragment
如果想要避免 Fragment already added 异常,可以考虑使用 FragmentTransaction 的 replace() 方法,避免重复添加同一 Fragment。
MyFragment fragment = new MyFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.container, fragment);
ft.addToBackStack(null);
ft.commit();
以上两种方案均可以有效解决“Fragment already added”问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Fragment already added问题的解决方案 - Python技术站