如何更改不同片段中顶部栏中的菜单项?
How can I change menu items in top bar in different fragments?
我使用 MaterialToolBar 来显示 TopAppBar。
我有三个片段,在显示每个片段时,我想在顶部菜单中显示不同的项目。怎么做?
试试这个代码
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_menu"
app:menu="@menu/main_menu"/>
然后这个
toolbar.setOnMenuItemClickListener {
// .. DO SOMETHING HERE
false
}
而不是 toolbar.setOnMenuItemClickListener
你需要使用这个 :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
有关详细信息,请查看 答案。
快速概览每次您需要更改菜单时都需要扩充不同的菜单资源。您还需要为需要执行的自定义操作设置 OnOptionsItemSelected
。
您可能还需要在 onCreate 方法中为片段 setHasOptionsMenu(true);
添加此内容。
我使用 MaterialToolBar 来显示 TopAppBar。 我有三个片段,在显示每个片段时,我想在顶部菜单中显示不同的项目。怎么做?
试试这个代码
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="@drawable/ic_menu"
app:menu="@menu/main_menu"/>
然后这个
toolbar.setOnMenuItemClickListener {
// .. DO SOMETHING HERE
false
}
而不是 toolbar.setOnMenuItemClickListener
你需要使用这个 :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
有关详细信息,请查看
快速概览每次您需要更改菜单时都需要扩充不同的菜单资源。您还需要为需要执行的自定义操作设置 OnOptionsItemSelected
。
您可能还需要在 onCreate 方法中为片段 setHasOptionsMenu(true);
添加此内容。