我已經使用了來自http://developer.android.com/training/implementing-navigation/nav-drawer.html的指導原則使用DrawerLayout進行了一個活動。相互之間顯示的片段
當我點擊一個drawerItem,我替換爲新片段當前視圖:
Fragment fragment;
Bundle args = new Bundle();
fragment = new NewsListFragment();
args.putInt("category", position);
// Insert the fragment by replacing any existing fragment
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment)
.commit();
mDrawerList.setItemChecked(position, true);
現在,有時舊片段不會被替換,但新的片段被放置在舊的頂部:
http://img15.imageshack.us/img15/3179/1kqj.png
這是爲什麼,以及如何解決這個問題?
相關的XML:
<!-- The main content view -->
<LinearLayout
android:id="@+id/rlMain"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="fill_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
</FrameLayout>
這隻發生有時,我還沒有找到一個流動重現這個呢。該應用程序不支持旋轉,所以它不會發生在那裏。
片段片段; Bundle args = new Bundle(); fragment = new NewsListFragment(); args.putInt(「category」,position); //通過替換任何現有片段來插入片段 FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager。的BeginTransaction() .replace(R.id.content_frame,片段) \t \t \t \t .addToBackStack(空) .commit(); mDrawerList.setItemChecked(position,true); –
你能否貼上你的xml? –
嘗試使用'container.removeAllViews();'在'onCreateView'方法請 –