在导航栏中设置默认选择选项

Viv*_*eel 4 android navigation-drawer drawerlayout

我正在使用最新的设计支持库.我已经设置了导航视图,其中包含四个片段作为菜单项.

我想在用户启动应用程序时打开我的第一个片段(即导航抽屉中的第一个项目).

默认情况下,它会显示MainActivity布局.

我试过了

navigationView.getMenu().getInt(0).setChecked(true);
Run Code Online (Sandbox Code Playgroud)

但上面的代码没有做任何事情.

Dam*_*lak 8

你使用片段容器布局吗?如果没有,请将此添加到您的activity_main.xml

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

在您的Activity覆盖onCreate方法中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new MainActivityFragment()).commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

而不是MainActivityFragment()调用您想要在开头显示的片段.

  • 注意,你应该把`replace()`调用放在`if(savedInstanceState == null)`check中 - 否则你的片段将在轮换时被替换. (2认同)

Man*_*hir 7

navigationView.getMenu().getInt(0).setChecked(true);
Run Code Online (Sandbox Code Playgroud)

替换为

navigationView.getMenu().getItem(0).setChecked(true);
Run Code Online (Sandbox Code Playgroud)