java - Android 工具栏菜单项保持为空

标签 java android android-actionbar android-toolbar android-theme

我的 Android 应用程序有一个 Toolbar,我想向其添加菜单项。工具栏显示正确,但展开菜单时菜单项无效。

android toolbar menu item is void

菜单结构在toolbar_menu.xml中定义:

toolbar_menu.xml

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/about"
        android:title="About"
        app:showAsAction="never"/>
</menu>

Activity在布局文件activity_layout.xml中定义工具栏

activity_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="visible"
    tools:context=".MainActivity">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:title="Welcome"/>

    <!-- other widgets follow -->

</androidx.constraintlayout.widget.ConstraintLayout>

我设置工具栏的 Activity 类是MainActivity.java

MainActivity.java

// import dependencies

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.main_activity);

        final Toolbar toolbar = (Toolbar) this.findViewById(R.id.toolbar);
        this.setSupportActionBar(toolbar);
    }




    @Override
    public boolean onCreateOptionsMenu(final Menu menu) {
        this.getMenuInflater().inflate(R.menu.toolbar_menu, menu);
        return true;
    }
}

最佳答案

问题是弹出菜单中的文本颜色。
在您的 Toolbar 中添加 app:popupTheme 属性。

    <androidx.appcompat.widget.Toolbar
        app:popupTheme="@style/AppTheme.PopupOverlay" 
        ../>

与:

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.DayNight.ActionBar" >
    <item name="android:textColor">@color/...</item>  
</style>

enter image description here

关于java - Android 工具栏菜单项保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66974889/

相关文章:

java - 如何在 src/main/resources 中创建文件

java - LibGDX:碰撞仅适用于一个矩形

android - 无法在 jitpack 上发布

android - 如何设置默认操作栏的高度和宽度?

java - 升级到 Java 11 : -Djava. endorsed.dirs 不支持

java - 删除其他运算符并仅保留文本运算符(TJ,Tj) pdfBox

java - SetOnKeyListener 不适用于 gridview

android - 更改操作栏中菜单项的 View

android - 检查屏幕是否窄

java - 输入/输出 - 算术方程式