当API级别高于10时,Android菜单图标未显示。

6

我正在尝试在Android中测试一些菜单选项,但是我注意到如果targetSdkVersion大于10,则菜单图标不会显示...

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:id="@+id/about" android:title="@string/about_label"
   android:icon="@android:drawable/ic_menu_info_details" android:alphabeticShortcut="a" />
   <item android:id="@+id/help" android:title="@string/help_label"
   android:icon="@android:drawable/ic_menu_help" android:alphabeticShortcut="h" />
</menu>

我正在尝试调试,但是不确定从哪里开始。

2个回答

7
从API Level 11(Android Honeycomb)开始,Android引入了一个与菜单相关的新概念。为该API级别构建的设备不再具有菜单键。按下按键后,不会显示菜单,而是出现了一个新的UI组件:操作栏。操作栏现在显示尽可能多的菜单项,然后创建一个按钮,在叠加层中显示其余的菜单项。

我假设您正在使用某种主题来防止操作栏出现,因此没有菜单项可见。还应阅读有关如何支持平板电脑和手机的指南,以开始理解新的操作栏工作方式。


1
<menu 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"
    tools:context="com.ktcmynewapp.MainActivity" >

    <item
        android:id="@+id/action_settings1"
        android:icon="@drawable/image1"`enter code here`
        android:orderInCategory="100"
        android:title="home1"
        app:showAsAction="never">
        <menu>
            <item
                android:id="@+id/action_settings2"
                android:icon="@drawable/image2"
                android:orderInCategory="100"
                android:title="home1"
                app:showAsAction="never"/>
            <item
                android:id="@+id/action_settings3"
                android:icon="@drawable/image3"
                android:orderInCategory="100"
                android:title="home2"
                app:showAsAction="never"/>
        </menu>
    </item>
    <item
        android:id="@+id/action_settings4"
        android:icon="@drawable/image2"
        android:orderInCategory="100"
        android:title="home2"
        app:showAsAction="never"/>

</menu>

在这段代码中,外部菜单项没有图标显示,但内部子菜单项可以正确地显示图标。

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