这个问题有很多答案,但从技术上讲,我的问题是不同的,我已经阅读了一些文档,并同意我们不应该在一个活动中使用多个片段,我们应该使用多个活动片段取决于项目要求或UI规范, 所以我的应用程序的体系结构是 1 BaseActivity和所有活动从 2. BaseFragment延伸,所有碎片从 伸出我的代码:使用片段的最佳方式
在BaseActivity我做以下功能
public void replaceFragment(int containerViewId, Fragment fragment, String fragmentTag, boolean addToBackStack) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(containerViewId, fragment, fragmentTag);
if(addToBackStack)
fragmentTransaction.addToBackStack(fragmentTag);
if(fragmentTag.matches("") && addToBackStack)
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
要FrameLayout里添加片段
public void addFragment(int containerViewId, Fragment fragment, String fragmentTag, boolean addToBackStack, boolean isPending) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(containerViewId, fragment, fragmentTag);
if(addToBackStack)
fragmentTransaction.addToBackStack(fragmentTag);
if(fragmentTag.matches("") && addToBackStack)
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
if(isPending)
fragmentManager.executePendingTransactions();
}
返回按功能
public void popBackStackImmediate() {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStackImmediate();
}
获得总片段
public List<Fragment> fragmentList(){
return getSupportFragmentManager().getFragments();
}
和流量 FragmentA(添加) - > FragmentB(替换) - >
QUET SION 1:为什么totalFragments显示2?而我已经将FragmentB替换为A
问题2:当我按回显示2片段的按钮时,我如何从堆栈中删除?
问题3:FragmentB是可见的,但FragmentA片段生命周期的工作太..means的onResume和的onCreate funcations呼吁太奇怪了,但真正的不知道为什么