我正在处理一个包含三个选项卡的应用程序,每个选项卡都有一个与之关联的片段。在某些情况下,我必须在第二个父选项卡中显示子选项卡。但是,如果该条件不成立,则不应加载子选项卡,并且父选项卡应加载我在子选项卡中使用的一个片段。例如,我有三个片段FragmentA,FragmentB和FragmentC。现在,如果条件为真,那么我将显示选项卡并使用Fragment选项卡主机在FragmentA中加载FragmentB和FragmentC。但条件是假的我想在FragmentA中显示FragmentB。
我尝试使用Fragment.replace()
但它失败了。
答案 0 :(得分:1)
我认为这不是一个全新的问题。 你可以在这里找到答案: Separate Back Stack for each tab in Android using Fragments
此致 弗朗西斯。
答案 1 :(得分:1)
在我的意图中你应该覆盖片段A的onHiddenchange()并在这里检查条件。
答案 2 :(得分:0)
我能够使用常见片段解决问题。在FragmentA
的onCreateView中,如果条件为真,则使用FragmentTabHost
创建标签,并将FragmentB
和FragmentC
添加到标签中。如果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();
它对我有用。