如何在onClick期间动态地将android NavigationView与另一个菜单充气?

Sud*_*han 9 android material-design navigationview

嗨我有一个NavigationView,在NavigationView的headerview中有一个imageview.当我点击imageview时,NavigationView应该膨胀另一个菜单资源文件并替换PlayStore应用程序中的当前菜单.

我试过这个:

imgIndic.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Log.e("Onclick","Arrow click");
        navigationView.inflateMenu(R.menu.second_menu);
    }
}); 
Run Code Online (Sandbox Code Playgroud)

但是当我点击按钮时,没有任何反应!(Log onclick显示在logcat中)我该怎么做?

Moi*_*han 21

尝试以下代码

imgIndic.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {      
        navView.getMenu().clear();
        navView.inflateMenu(R.menu.second_menu);
    }
}); 
Run Code Online (Sandbox Code Playgroud)


Lam*_*rak 9

我建议只用几个组来扩充一个菜单,并改变组的可见性.简单有效.

<group
    android:id="@+id/group_1"
    android:checkableBehavior="single"
    android:visible="false">
    ...
</group>

<group
    android:id="@+id/group_2"
    android:checkableBehavior="single"
    android:visible="true">
    ...
</group>
Run Code Online (Sandbox Code Playgroud)

在你的java代码调用中

navigationView.getMenu().setGroupVisible(R.id.group_1, true)
Run Code Online (Sandbox Code Playgroud)