這個問題有很多答案,但從技術上講,我的問題是不同的,我已經閱讀了一些文檔,並同意我們不應該在一個活動中使用多個片段,我們應該使用多個活動片段取決於項目要求或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呼籲太奇怪了,但真正的不知道爲什麼