选项菜单未显示文本

9
我用以下代码创建了我的菜单:

我用以下代码创建了我的菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/donate" 
        android:icon="@drawable/donate" 
        android:title="Donate"/>

    <item android:title="@string/color_picker" 
        android:id="@+id/color_picker" 
        android:icon="@drawable/colorpicker"/>
</menu>

当我点击菜单按钮时,图片出现了,但是文字没有出现。 我试图让文字显示出来,据我所知,文字应该出现...我做错了什么吗?

您能否在菜单项上显示文本和图像? - KK_07k11A0585
4个回答

11

如果你还没有发现,我认为你的图标大小不对。

我曾经遇到同样的问题,并通过适当的图标大小进行了修复。请查看这篇文章:http://developer.android.com/guide/practices/ui_guidelines/icon_design.html#icon-sets

基本上,您需要创建3组相同但大小不同的图标:

/res/drawable-hdpi 72×72像素的图标

/res/drawable-mdpi 48×48像素的图标

以及

/res/drawable-ldpi 36×36像素的图标

因此,例如在HTC Wildfire上运行您的应用程序时,@drawable/donate 将实际上指向 /res/drawable-ldpi/donate.png ,但在MyTouch3G上它将指向 /res/drawable-mdpi/donate.png


就像这样...我用相同的设置制作了一个测试项目,没有实际应用程序功能,但它确实显示图标。我非常困惑。 - sipjca
如果@Mircrea Nistor的解释是正确的,那么我们应该能够在菜单项中显示文本+应用程序图标(由Android在项目创建时提供给所有3个布局)。但是,我无法在菜单项上显示文本和图像。那么,有没有办法在菜单项上显示文本+图像呢? - KK_07k11A0585

1
假设图标可见,这意味着您的菜单代码是正确的。只是一个想法 - 尝试使用android:titleCondensed属性。文档说:

字符串资源。作为压缩标题的字符串资源或原始字符串。此标题用于正常标题过长的情况。

也许这就是你的情况?

嗯...那就不知道该提什么建议了。疯狂猜测——文本颜色和背景颜色可能是一样的吗? - Vit Khudenko
我认为需要检查一下.png文件,但我认为它具有透明背景。 - sipjca

0

你的menu.xml文件中是否包含完整的菜单部分?

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/buyCoke"
    android:title="Buy Coke" 
    android:icon="@drawable/coke"/> </menu>

是的,它确实会。如果我将可绘制对象移除,文本就会显示,但显然没有图标显示。我可能有一个损坏的 .png 文件导致文本无法显示吗? - sipjca

0

这是因为您的布局中使用的样式导致的。

定义一个新的样式并在您的布局中使用它来解决这个问题。

<style name="ToolBarStyle" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar">
    <item name="android:itemBackground">#fff</item>  // background color of the menus
    <item name="android:textColor">#000</item>  // text color of the menus
</style>

在你的布局中像这样使用它。
<com.google.android.material.appbar.MaterialToolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:theme="@style/ToolBarStyle"
    app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"
    android:background="@color/primary_pink"
    android:minHeight="?attr/actionBarSize"
    android:elevation="4dp"
    />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接