2017-03-06 108 views
0

我目前正在爲android的瀏覽器應用程序工作。我正在管理帶有片段的新選項卡。因此,當用戶打開新選項卡B時,一切正常,然後再返回到選項卡A.當從A嘗試返回到B時出現問題。換句話說,當您嘗試彈回相同片段時,它不工作第二次。第二次從backstack獲取片段

這是我如何增加新tabs-片段

android.app.Fragment f1 = new FragmentHolder(); 
    allFragments.add(f1); 
    getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, f1).addToBackStack(fragmentTags[allFragments.size()-1]).commit(); 

,在這裏,我怎麼回彈出的片段

boolean chkFlag = getFragmentManager().popBackStackImmediate(currentTag.getFragmentTAG(),0); 

我感謝您提前幫助。

回答

1

使用下面的活動功能,

private void loadFragmentAnimated(Fragment fragment, Bundle args, int containerId, String title) 
    { 
     fragment.setArguments(args); 
     FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(containerId, fragment); 
     fragmentTransaction.commitAllowingStateLoss(); 
    } 

加入片段使用,

loadFragmentAnimated(c, null, R.id.container_name, "title"); 

,並刪除片段使用,

getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.container_name)).commit(); 
+0

謝謝你的建議,但我將如何跟蹤沒有標籤的後臺堆棧中的所有碎片? – Alexander

+0

你可以通過容器id跟蹤片段 –

+0

做這個[post](http://stackoverflow.com/questions/6374170/how-to-set-a-fragment-tag-by-code) –