问题
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?
回答1:
try the following code
imgIndic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
navView.getMenu().clear();
navView.inflateMenu(R.menu.second_menu);
}
});
回答2:
I would suggest to inflate just one menu with several groups and change the visibility of the groups. Simple and effective.
<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>
In your java code call
navigationView.getMenu().setGroupVisible(R.id.group_1, true)
来源:https://stackoverflow.com/questions/31203212/how-to-inflate-android-navigationview-with-another-menu-dynamically-during-oncli