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

时间:2015-07-03 09:25:21

标签: android material-design navigationview

您好我有一个NavigationView,并且该NavigationView的标题视图中有一个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);
    }
}); 

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

2 个答案:

答案 0 :(得分:20)

尝试以下代码

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

答案 1 :(得分: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>

在你的java代码调用中

navigationView.getMenu().setGroupVisible(R.id.group_1, true)