0

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

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

4

3 回答 3

1

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

问候弗朗切斯科。

于 2013-10-21T09:00:48.143 回答
1

在我的意图中,您应该覆盖片段 A 的 onHiddenchange() 并在此处检查条件。

于 2013-10-22T05:45:10.123 回答
0

我能够使用通用片段解决问题。FragmentA如果条件为真,则在的 onCreateView 中使用和FragmentTabHost添加选项卡创建选项卡。如果条件为假,则使用膨胀视图 FragmentBFragmentC

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

它对我有用。

于 2013-10-22T06:04:18.407 回答