[英]How can I maintain state when switching between action bar tabs / fragments?
我有许多片段作为标签附加到Android操作栏。 我可以毫无问题地在它们之间切换。 但是,如果其中一个片段具有TextView
(例如),并且我更改了该TextView
的文本,则如果我切换到另一个选项卡并返回,则不会保留新文本。
我已经尝试重写onSaveInstanceState()
,但是当我切换制表符时它似乎没有被调用,因为每次调用onActivityCreated()
时, savedInstanceState
为null
(即每次重新打开该选项卡时)。
我考虑改变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.