Mam aktywność związaną z DrawerLayout, korzystając z wytycznych od http://developer.android.com/training/implementing-navigation/nav-drawer.html.Fragmenty wyświetlane nad sobą
Kiedy klikam na drawerItem, zastąpić bieżący widok z nowego fragmentu:
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);
Teraz czasami stary fragment nie otrzymuje jednak nowy fragment jest umieszczony na szczycie starego:
http://img15.imageshack.us/img15/3179/1kqj.png
Dlaczego to ma być, i jak rozwiązać ten problem?
Stosowna 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>
Dzieje się tak tylko czasami, i nie znalazłem przepływ do odtworzenia tego jeszcze. Aplikacja nie obsługuje rotacji, więc nie może się tam pojawić.
Fragment fragmentu; Bundle args = new Bundle(); fragment = new NewsListFragment(); args.putInt ("category", position); // Wstaw fragment, zastępując istniejący fragment FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace (R.id.content_frame fragment) \t \t \t \t .addToBackStack (zerowy) .commit(); mDrawerList.setItemChecked (pozycja, prawda); –
czy możesz wkleić swój xml? –
spróbuj użyć 'container.removeAllViews();' w metodzie 'onCreateView' proszę –