6

我正在开发小型 Android 应用程序,我在其中使用带有一些菜单项的操作栏。一个菜单项包含子菜单。现在我想做的是始终显示带有文本和图标的菜单项。

我以下列方式定义菜单项。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/card_menu"
        android:icon="@drawable/abc"
        android:showAsAction="withText|always"
        android:title="cards">

        <menu>

            <item
                android:id="@+id/C1"
                android:title="C1"/>

            <item
                android:id="@+id/C2"
                android:title="c2"/>

            <item
                android:id="@+id/C3"
                android:title="C3"/>
        </menu>
    </item>

    <item
        android:id="@+id/notification"
        android:actionLayout="@layout/notification_icon"
        android:icon="@drawable/notification"
        android:showAsAction="always"
        android:title="Notifications"/>

    <item
        android:id="@+id/filter"
        android:icon="@drawable/filter"
        android:showAsAction="always"
        android:title="Filter"/>

</menu>

现在发生的是我的操作栏正确显示我的项目;唯一的问题是,当窗口处于纵向模式时,它只显示图像,而当窗口处于横向模式时,它同时显示图像和文本。但我想要两种模式下的图像和文本。

怎么做?有没有办法解决这个问题?

4

2 回答 2

1

如果您使用的是 Android Sopport 库 ( android.support.v7.app.ActionBar ) 中的 ActionBar,您可能需要从以下位置更改菜单和项目声明:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/notification"
    android:actionLayout="@layout/notification_icon"
    android:icon="@drawable/notification"
    android:showAsAction="always"
    android:title="Notifications"/>

<!-- Your menu -->
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourappname="http://schemas.android.com/apk/res-auto" >


<!-- Your item to be shown as action-->    
<item
    android:id="@+id/notification"
    android:actionLayout="@layout/notification_icon"
    android:icon="@drawable/notification"
    android:showAsAction="always"
    yourappname:showAsAction="always"
    android:title="Notifications"/>

在提供与旧 android 版本的兼容性时,我遇到了类似的问题。

于 2013-09-18T18:23:28.590 回答
0

比使用android:showAsAction="ifRoom|withText"更好always
在这种情况下,取决于您的文本大小和屏幕宽度。

于 2013-04-21T07:53:20.547 回答