10

Hi I have a NavigationView and there is an imageview in the headerview of that NavigationView. When I click on the imageview , NavigationView should inflate another menu resource file and replace current menu like in PlayStore app.

I've tried this:

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

But when I click on the button, nothing happens! (Log Onclick is showing in the logcat) How can I do this?

4

2 回答 2

21

试试下面的代码

imgIndic.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {      
        navView.getMenu().clear();
        navView.inflateMenu(R.menu.second_menu);
    }
}); 
于 2015-07-03T09:42:37.777 回答
11

我建议只用几个组膨胀一个菜单并更改组的可见性。简单有效。

<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>

在您的 java 代码调用中

navigationView.getMenu().setGroupVisible(R.id.group_1, true)
于 2015-07-03T09:37:18.970 回答