ActionBar中未显示图标

时间:2014-08-27 13:31:36

标签: java android

我正构建一个在ActionBar中有图标的Android应用程序,如下所示:

enter image description here
我完全遵循Android的文档和教程中的内容,而我的结果只是一个文本,任何屏幕尺寸/分辨率:

enter image description here


我正在执行以下操作

-> MainActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

-> main_activity_actions.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:showAsAction="never" />
</menu>

我将图标放在*/res/drawable-*中,但它已被识别,但它在菜单中只显示为文字。如您所见,我明确指定android:icon="@drawable/ic_action_search",我只收到"Search"。我该怎么办?我正在使用API​​级别16。

3 个答案:

答案 0 :(得分:1)

您的标题可能太长而无法与android:showAsAction="ifRoom"尝试使用android:showAsAction="always",但这可能会导致您的标题被截断。

答案 1 :(得分:1)

托尼,

根据行动栏指南:

http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems,我们必须使用app:showAsAction =“ifRoom”或app:showAsAction =“always”。如果您必须不惜任何代价显示搜索图标,请使用showAsAction =“always”,尽管您的名称很长,如果您的应用名称没有空间,它将被点截断

FYI, Please check my sample app

enter image description here

请检查我的xml文件,该文件有两个额外的命名空间,可帮助您使用该应用程序:showAsAction。

答案 2 :(得分:0)

我认为你正在使用actionbar compat 在这种情况下,你必须添加这个名称空间xmlns:support="http://schemas.android.com/apk/res-auto"然后喜欢这个支持:showAsAction =&#34; always&#34; 你的menu.xml应该是这样的

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:support="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        support:showAsAction="ifRoom" />
    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        support:showAsAction="never" />
</menu>

和&#39;支持&#39;只是用于名称空间,您可以使用其他单词,例如&#39; app&#39;等