0

新しいサポート デザイン ライブラリでは、現在のフラグメントを置き換えることができません。以下のコードを確認してください。トーストは機能しており、画面に表示されていますが。ナビゲーション ドロワーのアイテムをクリックしようとすると、空の画面が表示されます

private void setupDrawerContent(NavigationView navigationView) {
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                case R.id.navigation_home:
                    getFragmentManager().beginTransaction().replace(R.id.container, new HomeFragment()).commit();
                    Toast toast;
                    toast = Toast.makeText(getApplicationContext(), "Home", Toast.LENGTH_LONG);
                    toast.show();

                case R.id.navigation_settings:
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        getFragmentManager().beginTransaction().replace(R.id.container, new SettingsFragmentLollipop()).commit();
                    } else {
                        getFragmentManager().beginTransaction().replace(R.id.container, new SettingsFragment()).commit();
                    }
                    Toast toast1;
                    toast1 = Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_LONG);
                    toast1.show();
            }
            menuItem.setChecked(true);
            mDrawerLayout.closeDrawers();
            return true;
        }
    });
}
4

2 に答える 2

1

コードの何が問題なのかを何時間も追跡した後、私はばかげているように感じます。私のxmlではandroid.support.design.widget.CoordinatorLayout、フラグメントコンテナに使用し、FrameLayout. 私はドキュメントでそれCoordinatorLayoutが単なるスーパーFrameLayoutであると言っていますが、フラグメントのコンテナとしては機能しないと思います。現在、重複するフラグメントを扱っています。

于 2015-05-31T06:32:38.480 に答える
0

クラスAppCompatActivityを使用している場合は試してください

getSupportFragmentManager().beginTransaction().replace(R.id.container,  new HomeFragment()).commit();

私は自分で新しいライブラリをいじっているだけです

于 2015-05-30T21:34:04.347 に答える