0

在我无法替换当前片段的新支持设计库上,请查看下面的代码。虽然 Toasts 正在工作并显示在屏幕上。每当我要单击导航抽屉上的任何项目时,我都会出现空白屏幕

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.CoordinatorLayoutFragment 容器,在其中将其替换为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 回答