android.support.design.widget.NavigationView 上的 getFragmentManager
getFragmentManager on android.support.design.widget.NavigationView
在新的支持设计库中,我无法替换当前片段,请检查下面的代码。虽然 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;
}
});
}
尝试,如果使用 class AppCompatActivity
getSupportFragmentManager().beginTransaction().replace(R.id.container, new HomeFragment()).commit();
我自己也在玩新库
好的,我让它工作了,经过几个小时回溯我的代码有什么问题后,我觉得自己很愚蠢。
在我的 xml 中,我使用 android.support.design.widget.CoordinatorLayout
作为 Fragment 容器,我在其中用 FrameLayout
替换它。我这样做是因为在文档中它说 CoordinatorLayout
只是一个 super FrameLayout 但我猜它不能作为片段的容器。我现在正在处理重叠的片段。
在新的支持设计库中,我无法替换当前片段,请检查下面的代码。虽然 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;
}
});
}
尝试,如果使用 class AppCompatActivity
getSupportFragmentManager().beginTransaction().replace(R.id.container, new HomeFragment()).commit();
我自己也在玩新库
好的,我让它工作了,经过几个小时回溯我的代码有什么问题后,我觉得自己很愚蠢。
在我的 xml 中,我使用 android.support.design.widget.CoordinatorLayout
作为 Fragment 容器,我在其中用 FrameLayout
替换它。我这样做是因为在文档中它说 CoordinatorLayout
只是一个 super FrameLayout 但我猜它不能作为片段的容器。我现在正在处理重叠的片段。