如何在ViewPager的一个片段中添加片段,其中相同的id在视图寻呼机中添加的每个片段是相同的?

时间:2015-08-11 06:24:45

标签: android android-fragments android-viewpager fragment

我正在尝试在视图寻呼机中添加的另一个片段中添加一个片段。视图寻呼机内的所有片段都是相同的。我只是用滑动来查看它们。单击按钮,我使用添加片段在主片段中添加片段。在这样做时,这个新片段被添加到视图寻呼机的最后一个片段而不是当前片段。 在我看来的原因是当我们寻找片段时,我们仍然有最后一个片段活跃,并且该片段在它上面添加了这个新片段。

第一次一切正常

public void onAddFragmentClick(View view) {
    if (!isInfoShown) {
        FragmentTransaction fragmentTransaction = this.getActivity().getSupportFragmentManager().beginTransaction();

        fragment = new MainFragment();
        fragmentTransaction.replace(R.id.fragment, fragment, "detail fragment");
        fragmentTransaction.commit();
        isInfoShown = true;
    } else {
        FragmentTransaction fragmentTransaction = this.getActivity().getSupportFragmentManager().beginTransaction();

        fragmentTransaction.remove(fragment);
        fragmentTransaction.commit();
        isInfoShown = false;
    }
}

在viewpager中添加的主片段是

<RelativeLayout   xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true" >
<fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="com.wedm.wedme.ui.fragment.PictureScreenFragment"
    android:id="@+id/fragment"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal|top" />
</FrameLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

对于嵌套片段,您应该使用要添加片段的片段的子片段管理器。希望这会有所帮助。