如何重新加载片段选项卡?

时间:2013-10-01 10:57:33

标签: android

我有以下代码来设置我的片段标签。

mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab1").setIndicator("Latest"), MainFragment.class,
                getBundle(0));
        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Today"), MainFragment.class,
                getBundle(1));
        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Week"), MainFragment.class,
                getBundle(2));
        mTabHost.addTab(mTabHost.newTabSpec("tab4").setIndicator("Month"), MainFragment.class,
                getBundle(3));
        mTabHost.addTab(mTabHost.newTabSpec("tab5").setIndicator("Year"), MainFragment.class,
                getBundle(4));

单击按钮时,我需要以编程方式加载选项卡。我可以setCurrentTab(1); setCurrentTab(0);强制重新加载,但这不是一个很好的方法。

我可以在我的片段中有一个重载方法来加载片段。但我不知道如何引用它们,因为我只将类名传递给标签主机

1 个答案:

答案 0 :(得分:0)

setCurrentTab()并不是那么糟糕,这是在标签之间进行更改的好方法。 更改选项卡时,将触发侦听器OnTabChangeListener,就像用户单击其他选项卡一样。

如果在单击此按钮时需要执行检查或某个中间任务,则可以执行中间方法,但更改选项卡的最终方法是setCurrentTab()。

在我的项目中,onTabChangeListener做了所有智能部分,所以我不必担心片段堆栈。 如果在您的情况下您需要获得正确的堆栈(返回到另一个片段),您可以在FragmentTransaction上使用“replace”来维护正确的堆栈。