片段替换仍然可见在背景上

Zet*_*tch 13 android fragment android-fragments

我正在尝试使用新的导航抽屉图案替换另一个片段.它似乎工作,但当我从抽屉中选择另一个选项时,新片段被加载但两个片段都可见.我没有使用静态片段布局,所以我不知道问题出在哪里.

片段通过在我的活动上onItemClick实现的方法加载AdapterView.OnItemClickListener.

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Fragment fragmentToShow = null;
    // Load desired fragment
    switch (position) {
        case 0: // Authors
            if (fragmentAuthors == null) fragmentAuthors = new FragmentAuthors();
            fragmentToShow = fragmentAuthors;
            break;
        case 1: // Books
            if (fragmentBooks == null) fragmentBooks = new FragmentBooks();
            fragmentToShow = fragmentBooks;
            break;
    }
    FragmentTransaction ft = fragmentManager.beginTransaction();
    ft.replace(R.id.ActivityMain_Drawer_FrameMain, fragmentToShow);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.commit();
    mDrawerLayout.closeDrawers();
}
Run Code Online (Sandbox Code Playgroud)

布局

<!-- The main content view -->
<FrameLayout
    android:id="@+id/ActivityMain_Drawer_FrameMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/background_light" />

<!-- The navigation drawer -->
<FrameLayout
    android:id="@+id/ActivityMain_Drawer_FrameMenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/background_light">
    <ListView
        android:id="@+id/ActivityMain_Drawer_FrameMenu_List"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

截图

https://dl.dropboxusercontent.com/u/1763308/Screenshots/device-2013-05-27-113128.png https://dl.dropboxusercontent.com/u/1763308/Screenshots/device-2013-05-27 -113139.png

Nik*_*Nik 12

我对一些片段也有同样的问题.为了解决这个问题,我简单地为所有片段布局设置背景颜色,例如:

android:background="?android:attr/colorBackground"
Run Code Online (Sandbox Code Playgroud)

  • 嗯我自己也有同样的问题,但肯定这个答案只是掩盖问题而且片段应该被停止而不是保持参考并且只是被背景颜色隐藏 (13认同)
  • 我猜这会增加画面,使你的ui动画不那么流畅.这并不能解决您的问题,但确实隐藏了它. (5认同)