【问题标题】:Add Fragment into fragment?将片段添加到片段中?
【发布时间】:2012-11-18 09:09:14
【问题描述】:

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

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 开始可以在另一个片段中使用片段
  • developer.android.com/about/versions/… 它说它在最新的支持库中(抱歉没有示例)
  • 好的,请让我检查一下……谢谢。

标签: android android-layout android-fragments


【解决方案1】:

在您的 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 片段根视图的背景颜色设置为白色,因为它以透明方式加载

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

FragmentManager fm=getSupportFragmentManager();
fm.popBackStack();

【讨论】:

    【解决方案2】:

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

    类似

    ((MyActivity) getActivity()).goToOtherFragment();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多