我有许多片段作为标签附加到Android操作栏.我可以毫无问题地在它们之间切换.但是,如果其中一个片段有TextView(例如),并且我改变了它的文本,TextView如果我切换到另一个选项卡并返回,则不保留新文本.
我试图压倒一切的onSaveInstanceState(),但现在看来,当我切换标签不叫,因为savedInstanceState是null每次onActivityCreated()被调用(即标签被重新打开每次).
我考虑改变onPause()它调用onSaveInstanceState(),但onPause()无法访问状态包,所以我不知道如何做到这一点.
在标签之间来回切换时,在状态栏中保持状态的最佳方法是什么?
use*_*162 10
当您在片段之间切换时,不要分离片段只是隐藏.例:
@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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |