我完全遵循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。
答案 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”,尽管您的名称很长,如果您的应用名称没有空间,它将被点截断
请检查我的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;等