Android 在片段中调用片段

Android 在片段中调用片段,android,android-fragments,Android,Android Fragments,我从第一个片段调用第二个片段,并在调用第二个片段时使用2个片段膨胀布局。第一个片段的布局也出现在第二个片段布局后面的屏幕上。我只想在屏幕上显示第二个布局。 这是密码 android.support.v4.app.FragmentManager fm = getFragmentManager(); facebookPictureShareFragment Picfragment = new facebookPictureShareFragment();

我从第一个片段调用第二个片段,并在调用第二个片段时使用2个片段膨胀布局。第一个片段的布局也出现在第二个片段布局后面的屏幕上。我只想在屏幕上显示第二个布局。 这是密码

android.support.v4.app.FragmentManager fm = getFragmentManager();
                facebookPictureShareFragment Picfragment = new facebookPictureShareFragment();
                 FragmentTransaction ft = fm.beginTransaction();
                 ft.add(((ViewGroup)getView().getParent()).getId(), Picfragment);
                 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);

                 ft.commit(); 

您需要将ft.add更改为ft.replace

add()将一个片段添加到活动状态

替换()

替换添加到容器中的现有片段。这是 本质上与当前为所有对象调用remove(Fragment)相同 添加了使用相同ContainerWebID添加的片段,然后 使用此处给出的相同参数添加(int、Fragment、String)


尝试使用回调并将此代码插入到活动中(不在片段中),请查看此链接以了解更多详细信息:


如果一次显示一个片段,Google建议对一个活动使用一个片段,并将该片段用作容器。使用EventCallbacks方法可以使活动非常简单,然后您可以更简单地添加或删除片段。

只需替换片段即可。ft.更换();((ViewGroup)getView().getParent()).getId()是您在片段中替换的同一个容器。为什么不使用要替换的视图的id。like(R.id.集装箱船_id)