Android ICS + ActionBar选项卡+方向更改
问题描述:
我设法创建了一个ActionBar选项卡菜单,调用扩展片段的不同类。 问题是,当我改变方向时,在菜单项之间切换什么都不做。 但我终于明白了这个问题。Android ICS + ActionBar选项卡+方向更改
主要的问题是这里的老片段不被删除的方向变化时,所以总有一个未使用的标签的只是用户所选择的选项卡
任何想法以上的副本?我缺少一些基本的东西?
谢谢
答
我终于找到了我自己的解决方案,在我的自定义ActionBar.TabListener
类我有ft.add
将添加的片段,以我观定义的onTabSelected
方法。
当方向改变时,方法onTabUnselected
没有被调用,所以碎片仍然存在。
更换ft.add
到ft.replace
设法删除所有旧片段,在新的地方正确显示。
希望这有助于别人
答
我认为这是更好地保存的selectedIndex上的活动娱乐。 这样你就没有问题,因为选择了相同的索引,而不需要取消选择,对用户来说也更好。
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
int i = getActionBar().getSelectedNavigationIndex();
outState.putInt("selectedTabIndex", i);
}
//And then restore
private void initActionBar(Bundle savedInstanceState) {
ActionBar ab = getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ab.addTab(...);
...
if(savedInstanceState != null) {
int index = savedInstanceState.getInt("selectedTabIndex");
getActionBar().setSelectedNavigationItem(index);
}
答
有标签听者的旧片段(得自onTabUnselected左()不会被调用),并将其分离的构造检查。有一个专门为ActionBarSherlock制作的选项卡侦听器:FragmentTabListener.java。来自API演示的FragmentTabs.java中也有相同的构造函数代码(没有支持库的情况下使用)。