簡體   English   中英

在操作欄選項卡/片段之間切換時如何保持狀態?

[英]How can I maintain state when switching between action bar tabs / fragments?

我有許多片段作為標簽附加到Android操作欄。 我可以毫無問題地在它們之間切換。 但是,如果其中一個片段具有TextView (例如),並且我更改了該TextView的文本,則如果我切換到另一個選項卡並返回,則不會保留新文本。

我已經嘗試重寫onSaveInstanceState() ,但是當我切換制表符時它似乎沒有被調用,因為每次調用onActivityCreated()時, savedInstanceStatenull (即每次重新打開該選項卡時)。

我考慮改變onPause() ,以便它調用onSaveInstanceState() ,但onPause()無法訪問狀態包,所以我不知道如何做到這一點。

在標簽之間來回切換時,在狀態欄中保持狀態的最佳方法是什么?

當您在片段之間切換時,不要分離片段只是隱藏。 例:

@Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
      FragmentManager fm = getFragmentManager(); 
      if(fm.findFragmentByTag(tab.getTag().toString()) == null){
           ft = fm.beginTransaction();
           FragmentContent contentfrag = new FragmentContent();
           ft.add(R.id.framelayout, contentfrag, tab.getTag().toString());
           ft.addToBackStack("BackStack" + tab.getTag().toString());
       }
       else{
           Fragment frag = fm.findFragmentByTag(tab.getTag().toString());
           ft.show(frag);
      }
}

    @Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        Fragment frag = this.getFragmentManager().findFragmentByTag(tab.getTag().toString());
    ft.hide(frag);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM