使用Fragments和FragmentTabHost动态显示?

时间:2013-10-21 08:40:53

标签: android tabs android-fragments

我正在处理一个包含三个选项卡的应用程序,每个选项卡都有一个与之关联的片段。在某些情况下,我必须在第二个父选项卡中显示子选项卡。但是,如果该条件不成立,则不应加载子选项卡,并且父选项卡应加载我在子选项卡中使用的一个片段。例如,我有三个片段FragmentA,FragmentB和FragmentC。现在,如果条件为真,那么我将显示选项卡并使用Fragment选项卡主机在FragmentA中加载FragmentB和FragmentC。但条件是假的我想在FragmentA中显示FragmentB。

我尝试使用Fragment.replace()但它失败了。

3 个答案:

答案 0 :(得分:1)

我认为这不是一个全新的问题。 你可以在这里找到答案: Separate Back Stack for each tab in Android using Fragments

此致 弗朗西斯。

答案 1 :(得分:1)

在我的意图中你应该覆盖片段A的onHiddenchange()并在这里检查条件。

答案 2 :(得分:0)

我能够使用常见片段解决问题。在FragmentA的onCreateView中,如果条件为真,则使用FragmentTabHost创建标签,并将FragmentBFragmentC添加到标签中。如果condition为false,则使用

扩展视图
    View fragmentView = Inflator.Inflate(R.id.fagment_layout, FragmentB); 
    FragmentB fragmentB = new FragmentB();
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(fragmentView, fragmentB);
    transaction.commit();

它对我有用。