当我尝试用片段替换活动时,我的应用最终会将片段呈现在活动之上:
<!-- 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();
}
我做错了什么?
答案 0 :(得分:0)
FragmentTransaction
只处理(动态创建的)Fragment
。容纳View
的容器ViewGroup
中的任何Fragment
都不受replace()
的影响。也就是说,Fragment
只会添加到它们之上。如果您想要完全替换现有布局,则应将CoordinatorLayout
中的activity.xml
替换为空ViewGroup
- 通常为FrameLayout
- 并使用CoordinatorLayout
}作为您可以在启动时加载的另一个Fragment
的布局,然后可以使用FragmentTransaction
相应地换出。{/ p>