【发布时间】:2015-09-09 20:14:53
【问题描述】:
这里是我在 Android 4.x 上的“项目”的总结以及我无法解决的问题:
我有一个带有 2 个选项卡的 actionBar(我知道它已被弃用):
...
Fragment fragmentTab1 = new FragmentTab1();
Fragment fragmentTab2 = new FragmentTab2();
Fragment fragmentTab3 = new FragmentTab3();
ActionBar.Tab tab1, tab2;
ActionBar actionBar = getActionBar();
tab1 = actionBar.newTab().setText("tab1");
tab2 = actionBar.newTab().setText("tab2");
tab1.setTabListener(new MyTabListener(fragmentTab1));
tab2.setTabListener(new MyTabListener(fragmentTab2));
actionBar.addTab(tab1);
actionBar.addTab(tab2);
...
我想更改选项卡的片段并刷新用户看到的内容,在方法中执行此操作(不仅在(重新)选择选项卡时)。
这听起来很简单,但不可能找到一种简单的方法来做到这一点。
在多次失败后,这就是我尝试的方法(我删除了标签并添加了一个新片段):
void myMethod () {
getActionBar().removeTabAt(0);
tab1 = actionBar.newTab().setText("tab3");
tab1.setTabListener(new MyTabListener(fragmentTab3));
getActionBar().addTab(tab1, 0);
...
然后这个可怕的事情绝望地尝试更新所看到的......
...
getActionBar().setSelectedNavigationItem(tab1.getPosition()+1);
getActionBar().setSelectedNavigationItem(tab1.getPosition());
}
一切都如愿以偿,除了重新选择的 tab1 是空的... :(
如果我用手指选择 tab2 然后选择 tab1(手动代替编程方式),然后 tab1 会按需要显示...
那么,如何以编程方式更改选项卡的内容并刷新在 actionBar 中看到的内容?
非常感谢您抽出宝贵时间!
【问题讨论】:
标签: android android-fragments tabs android-actionbar