FragmentTabHost更改特定选项卡的片段,即使它未被选中

时间:2017-04-20 14:16:05

标签: java android android-tabhost fragment-tab-host

我有一个FragmentTabHost,我有一个像这样添加的usertab:

mTabHost.addTab(mTabHost.newTabSpec("usertab").setIndicator(uti), LoginTab.class, null);

当用户登录时,我想将该标签的类更改为UserTab,我喜欢这样:

getSupportFragmentManager()
                .beginTransaction()
                .replace(android.R.id.tabcontent, new UserTab(), "usertab")
                .commit();

但是,如果用户位于不同的选项卡上,则用户所在选项卡的内容会发生变化(它只是替换了连接到当前所选选项卡的tabcontent布局的内容),我希望添加标签替换函数中的参数可以做到这一点,但它没有(它无论如何都会做什么?,因为它不做任何不同的事情,然后当我不使用它时)。

在提交事务之前,我是否可以选择以编程方式将选项卡更改为usertab,还是有更好的方法?

(顺便说一下,这是我第一次玩弄整个碎片现象)

1 个答案:

答案 0 :(得分:0)

您应该更改与TabLayout配对的viewpager的FragmentTabHost,这是一个很好的example;如果你不能替换fragmentTabHost,我建议你在没有.replace()的情况下进行片段事务,因为在弹出可能是你现在看到的问题的backstack事务时它有意想不到的行为