用片段替换活动只是覆盖在前

时间:2016-01-13 03:09:15

标签: android android-fragments

当我尝试用片段替换活动时,我的应用最终会将片段呈现在活动之上:

<!-- activity.xml -->
<CoordinatorLayout
    android:id="@+id/coord_layout">
... stuff ...
</CoordinatorLayout>

这是片段:

<!-- fragment.xml -->
<LinearLayout
    android:id="@+id/frag_layout">
... stuff ...
</LinearLayout>

这是我的主要课程:

private void selectDrawerItem(MenuItem menuItem) {
    Fragment f = fragment.newInstance();

    FragmentManager fragManager = getSupportFragmentManager();
    fragManager.beginTransaction().replace(R.id.coord_layout, f).commit();
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

FragmentTransaction只处理(动态创建的)Fragment。容纳View的容器ViewGroup中的任何Fragment都不受replace()的影响。也就是说,Fragment只会添加到它们之上。如果您想要完全替换现有布局,则应将CoordinatorLayout中的activity.xml替换为空ViewGroup - 通常为FrameLayout - 并使用CoordinatorLayout }作为您可以在启动时加载的另一个Fragment的布局,然后可以使用FragmentTransaction相应地换出。{/ p>