使用replace()时碎片重叠

时间:2017-04-06 11:26:08

标签: android android-layout android-fragments

我使用Fragments在我的应用程序中显示不同的内容。我的主要布局如下:

<FrameLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

    <fragment
        android:id="@+id/fragmentContent"
        android:name="app.MainContentFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout="@layout/fragment_main_content" />

</FrameLayout>

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/navigation" />

然后在我的活动中,我使用以下代码切换片段:

public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContent, new MainContentFragment(), "MainContentFragment").commit();
                    return true;
                case R.id.navigation_dashboard:
                    getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContent, new DashboardFragment(), "DashboardFragment").commit();
                    return true;
                case R.id.navigation_notifications:
                    getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContent, new SettingsFragment(), "SettingsFragment").commit();
                    return true;
            }
            return false;
        }

但结果如下:

enter image description here enter image description here

我想要替换片段,而不是仅仅把它放在另一个片段上#34;年龄较大的&#34;之一。

0 个答案:

没有答案