新しいナビゲーションドロワーパターンを使用して、1つのフラグメントを別のフラグメントに置き換えようとしています。それは動作しているようですが、私が引き出しから別のオプションを選択すると、新しいフラグメントがロードされますが、両方のフラグメントが表示されます。私は静的フラグメントレイアウトを使用していないので、どこに問題があるのかわかりません。フラグメントがまだ背景に表示されています
フラグメントは、メソッドによってロードされ、私の活動には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();
}
レイアウト
<!-- 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>
スクリーンショット
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
私は同じ問題を抱えていますが、確かにこの回答は問題を隠しているだけであり、参照を保持して背景色で隠しているよりもむしろ停止する必要があります –
私はこれがオーバードローを追加して、UIアニメーションの流動性を低下させます。これはあなたの問題を解決するものではありませんが、文字通りそれを隠します。 – MinceMan
これは良い解決策だとは思わない。 – rgv