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



我正在严格按照Android文档和教程中的内容进行操作,而我的结果只是任何屏幕尺寸/分辨率的文本:




我正在执行以下操作:

-> 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。

最佳答案

托尼

按照操作栏指南:

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





请检查我的xml文件,该文件有两个额外的命名空间,它们将帮助您使用app:showAsAction。

09-13 00:59