2015-01-04 66 views
4
<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文件,在理论上它应该显示两个图标为单一图标和标题为第一图标了。安卓:COMPAT:showAsAction =“总是| withText”不工作

然而,在应用程序不显示标题,这里是撷取画面: enter image description here

那么,为什么不把它显示“头衔”?

+0

机器人:showAsAction = “总是| withText” 应显示标题,如果有足够的空间,标题将显示,如果有足够的标题空间。 – darshanz 2015-01-04 13:34:36

+0

你会说你的图标清楚地解释了这些行为吗?也许你不需要文字,而thingyear的答案是正确的。 – 2015-01-04 14:01:19

回答

2

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

如果你的菜单项提供一个标题和一个图标 - 标题和图标属性 - 那么该操作项目默认只显示图标。

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

注:的“withText”值是一个提示的文字标题应该出现在动作条。 可能时,操作栏会显示标题,但可能不是如果图标可用并且操作栏被约束的空间

2

Android系统认为没有足够的空间来显示完全菜单项的标题,所以它隐藏标题(虽然可能有足够的空间,但是Android不这么认为)。如果你变成景观或在平板电脑上运行应用程序,标题将显示出来。

这声明当操作栏中有空间可用时,搜索操作应显示为操作按钮,但设置操作应始终出现在溢出中。 (默认情况下,所有动作出现溢出,但它是很好的做法,明确声明你的设计意图的每一个动作。)

https://developer.android.com/training/basics/actionbar/adding-buttons.html

+0

啊,解释事情的话,可能不得不重新考虑不同的菜单,然后。 – arleitiss 2015-01-04 13:42:38

+0

你不需要。该图标已包含非常自我解释性文字“聊天”,因此您不需要标题。 – 2015-01-04 15:09:28

0

这为我工作

app:showAsAction="ifRoom|withText" 
0

appcompat_v7>值> config.xml中

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

变化

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