片段到片段交易 android

Fragment to fragment transaction android

我有一个容器a.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.tc.MainActivity"
    tools:ignore="MergeRootFrame" />

是显示tab内容,是一个listview。第一个选项卡 A 是 b.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


     <ListView
              android:id="@+id/list"
              android:layout_height="0dp"
              android:layout_width="match_parent"
              android:background="@color/lightGrey"
              android:layout_weight="0.8"
              android:divider="@android:color/transparent"
              android:dividerHeight="5.0sp"
              android:focusable="false"
              android:focusableInTouchMode="false">
         </ListView>

</LinearLayout>

在 A 内部,当用户单击单个列表视图项时,我想用另一个片段替换当前列表视图,即 ContentFragment。

    public void onItemClick(AdapterView<?> parent, final View view,
            int position, long id) {
        ContentFragment c= new ContentFragment();
        c.setArguments(args);
        a.getFragmentManager().beginTransaction()
        .replace(xxx, c)
        .addToBackStack(null)
        .commit();
    }

对于xxx字段,我觉得应该填a.container?但是我怎样才能得到它呢?在选项卡 A 内,我是 inflater.inflate(R.layout.b, container, false);

您可以在 tabview 中像这样替换片段

 public void replaceFragment(Fragment fragment,booleanaddToBackStack,ContextmContext) 
 {
            FragmentTransaction transaction = ((FragmentActivity) mContext).getFragmentManager().beginTransaction();
            if (addToBackStack) 
            {
                transaction.addToBackStack(fragment.getClass().getSimpleName());
            }


            transaction.add(R.id.realtabcontent, fragment);
            transaction.commit();
            ((FragmentActivity) mContext).getFragmentManager().executePendingTransactions();

 }