[英]Icon is not shown in 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。
您的标题可能太长,无法与android:showAsAction="ifRoom"
一起使用,请尝试使用android:showAsAction="always"
尽管这可能会导致您的标题被切断。
托尼
按照操作栏指南:
http://developer.android.com/guide/topics/ui/actionbar.html#ActionItems ,我们必须使用app:showAsAction =“ ifRoom”或app:showAsAction =“ always”。 如果您必须不惜任何代价显示搜索图标,请使用showAsAction =“ always”,尽管您的名字很长,但如果您的应用程序名称没有空间,它将被点号截断
请检查我的xml文件,该文件具有两个额外的命名空间,这些命名空间将帮助您使用app:showAsAction。
我认为您在这种情况下使用的是Actionbar Compat,则必须添加此名称空间xmlns:support="http://schemas.android.com/apk/res-auto"
,然后再添加以下支持:showAsAction =“ always” 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>
并且“支持”仅用于命名空间,您也可以使用其他单词,例如“ app”等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.