Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改顶部栏中不同片段中的菜单项?_Android_Android Fragments_Android Toolbar - Fatal编程技术网

Android 如何更改顶部栏中不同片段中的菜单项?

Android 如何更改顶部栏中不同片段中的菜单项?,android,android-fragments,android-toolbar,Android,Android Fragments,Android Toolbar,我使用MaterialToolBar显示TopAppBar。 我有三个片段,当显示每个片段时,我想在顶部菜单中显示不同的项目。怎么做?试试这段代码 <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height=&q

我使用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"/>

您需要使用以下选项,而不是
工具栏。setOnMenuItemClickListener

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}
欲了解更多信息,请查看答案

快速概述每次需要更改菜单时,您都需要对不同的菜单资源进行充气。您还需要为需要执行的自定义操作设置选项ItemSelected


您可能还需要为fragment
sethaspoptions菜单(true)添加此选项在您的onCreate方法中。

我理解这一点。我的问题是-我能以某种方式动态更改菜单项吗?或者是否需要为项目菜单的每个选项创建多个布局?您需要创建多个布局
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.game_menu, menu);
    return true;
}