0

我有以下代码来设置我的片段选项卡。

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); 设置当前标签(0);强制重新加载,但这不是一个好方法。

我可以在我的片段中使用 reload 方法来加载片段。但我不知道如何引用它们,因为我只将类名传递给选项卡主机

4

1 回答 1

0

setCurrentTab() 还不错,它是在选项卡之间切换的好方法。更改选项卡时,侦听器OnTabchangelistener将被触发,就像用户单击其他选项卡一样。

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

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

于 2013-10-01T11:21:09.290 回答