Android 带有片段开关的FragmentTabHost
我对FragmentTabHost做片段替换感到困惑。我有一些页面有一些视图需要单击,然后转发到另一个片段,但在我替换该片段,然后单击其他选项卡后,片段重叠在一起 这是我的切换功能:Android 带有片段开关的FragmentTabHost,android,android-fragments,android-tabhost,Android,Android Fragments,Android Tabhost,我对FragmentTabHost做片段替换感到困惑。我有一些页面有一些视图需要单击,然后转发到另一个片段,但在我替换该片段,然后单击其他选项卡后,片段重叠在一起 这是我的切换功能: public void fragmentSwitch(FragmentActivity context, Fragment fragment, String fragmentTag){ FragmentManager fragmentManager = context.getSupportFragmentM
public void fragmentSwitch(FragmentActivity context, Fragment fragment, String fragmentTag){
FragmentManager fragmentManager = context.getSupportFragmentManager();
fragmentManager.beginTransaction()
//.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right)
.replace(android.R.id.tabcontent, fragment, fragmentTag)
//.addToBackStack(null)
.commit();
fragmentManager.executePendingTransactions();
}
我认为FragmentTabHost不支持替换选项卡上的片段。文档中没有提到这一点,在源代码中,它看起来像用于每个选项卡的TabInfo对象正在缓存片段实例。如果直接转到FragmentManager并替换片段,没有人会告诉FragmentTabHost关于它的信息,因此它仍然会保留旧片段。我该如何处理它??更正缓存?在我最后一条评论之前,我寻找了一个API,在那里你可以告诉标签关于新片段,但我没有看到。想到的两个选项是:1)不替换片段,只配置当前片段(不确定这是否适用于您),或2)将FragmentPagerAdapter与操作栏导航选项卡一起使用。这是谷歌正在推动的方法,有了支持库,它也可以在旧设备上工作。如果你告诉我哪一个更适合你,我可以给你更多的指导。@Bruce我想我必须搜索如何使用viewpager:)非常感谢