安卓:compat:showAsAction="always|withText"无效

6
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:compat="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_chat"
        android:icon="@drawable/ico_enter_chat"
        android:title="Enter Chat"
        compat:showAsAction="always|withText" />

    <item android:id="@+id/action_map"
        android:icon="@drawable/ico_map"
        android:title="Users Map"
        compat:showAsAction="always"    />
    <item android:id="@+id/action_logout"
        android:icon="@drawable/ico_log_out"
        android:title="Log Out"
        compat:showAsAction="always"  />



</menu>

这是我的菜单XML文件,在理论上它应该将两个图标显示为单个图标,并且第一个图标还带有标题。
但是,在应用程序中它不显示标题,以下是截图: enter image description here 那么为什么它不显示“title”呢?

android:showAsAction="always|withText" 如果有足够的空间,应该显示标题,如果有足够的空间,则会显示标题。 - darshanz
你认为你的图标清晰地解释了操作吗?也许你不需要文本,thingyear的答案是正确的。 - Jared Burrows
4个回答

3
Android系统认为没有足够的空间完整显示菜单项标题,因此隐藏了标题(尽管可能有足够的空间,但Android不这么认为)。如果你转成横屏或在平板电脑上运行应用程序,则标题将显示出来。
声明搜索操作应该在操作栏中有足够的空间时显示为操作按钮,但设置操作应始终显示在溢出菜单中。(默认情况下,所有操作都会显示在溢出菜单中,但明确声明每个操作的设计意图是一个好习惯)。
链接:https://developer.android.com/training/basics/actionbar/adding-buttons.html

啊,这样解释就清楚了,也许得重新考虑不同的菜单了。 - arleitiss
您不需要添加标题。图标已经包含了相当自我解释的文本“聊天”。 - Eugen Pechanec

3

来源: http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems

如果您的菜单项同时提供了标题和图标——使用标题和图标属性——那么默认情况下,操作项仅显示图标。

如果您想要显示文本标题,请将“withText”添加到showAsAction属性中。

注意:“withText”值是对操作栏的提示,指示文本标题应该出现。当有空间时,操作栏将显示标题,但如果有图标可用并且操作栏受到限制,则可能不会显示标题。


0

appcompat_v7 > values > config.xml

的编程相关内容。
<bool name="abc_config_allowActionMenuItemTextWithIcon">false</bool>

改变

<bool name="abc_config_allowActionMenuItemTextWithIcon">true</bool>

0

这对我有用

app:showAsAction="ifRoom|withText"

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