0

我创建了一个活动容器,在其中添加了一个片段:

FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.simple_fragment, myFragment); ft.commit();

其中 simple_fragment 是容器布局(线性/框架),现在我想从 myFragment 本身在 myFragment 中添加另一个片段。

更新 :

请参考附加的图像,在这种情况下,我有带有三个顶部按钮的活动布局,在单击每个按钮时,我将下行布局替换为其他片段布局,例如片段 1/2 或 3 ....现在从片段 1 我想调用其他片段 1A 和从 1A 到 1B。在这里,我也想为内部片段视图维护堆栈。

在此处输入图像描述

我该怎么做,有人对此有想法/建议吗?

4

2 回答 2

0

访问托管 Fragment 的 Activity 并要求它替换您的 Fragment。

就像是

((MyActivity) getActivity()).goToOtherFragment();
于 2012-11-30T06:48:33.453 回答
0

在您的 1A 片段中,您必须为将包含 1B 片段示例的父视图提供一个 id

<FrameLayout android:id="@+id/content"/>

那么你必须将新的 1B 片段添加到 1A

 Fragment1B fragment1B = new Fragment1B();
 FragmentTransaction transaction=getFragmentManager().beginTransaction();     
 transaction.add(R.id.content,fragment1B,"fragment1BTAG");
 transaction.addToBackStack(null);
 transaction.commit();

有时您需要将 1B 片段根视图的背景颜色设置为 white ,因为它加载为 trasnparent

然后在你的 onBackPressed() 你可以使用

FragmentManager fm=getSupportFragmentManager();
fm.popBackStack();
于 2017-02-22T22:16:57.723 回答