将片段添加到片段中

时间:2018-05-17 18:04:44

标签: android android-activity fragment

是否可以在另一个片段中添加片段?

确实,我有活动A ,其中包含片段F1 ,我想在中添加另一个片段F1.1 >片段F1

enter image description here

我该怎么做。

我希望你理解我的问题

2 个答案:

答案 0 :(得分:4)

假设您有一个这样的活动布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.example.frag.MyFragment"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

这将在活动中创建MyFragment类型的片段,您也可以以编程方式执行:

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();

R.id.fragment_container是将片段保存在活动布局文件中的视图的ID,我通常使用框架布局。

最后,对于嵌套片段,您可以only以编程方式执行此操作。该方法非常类似于以编程方式向活动添加片段,在父片段内部执行:

Fragment nestedFragment = new MyFragment2();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.nested_frag, videoFragment).commit();

再次R.id.nested_frag是父片段布局文件中容器的id。

答案 1 :(得分:0)

从片段F1中,您可以使用以下内容添加新片段:

    FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    fragmentTransaction.replace(R.id.container, fragment);
    fragmentTransaction.commit();