我使用"最低要求SDK"创建了一个基本项目。 API 11测试Action Bar。 而不是在酒吧上显示操作按钮,他们最终在行动溢出,甚至酒吧是空的。我使用了以下代码。
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom"/>
但是当我添加以下命名空间时,它开始显示操作按钮。
xmlns:app="http://schemas.android.com/apk/res-auto"
并将android:showAsAction="ifRoom"
更改为app:showAsAction="ifRoom"
。
据我所知,android:showAsAction="ifRoom"
应该适用于API 11及更高版本。
请帮忙解决这个问题。
答案 0 :(得分:2)
xmlns:yourapp="http://schemas.android.com/apk/res-auto"
xmlns表示xml命名空间,它使xml中的元素唯一。您应始终包含此行,以消除两个共享相同名称的元素的消歧。
更多信息:http://www.sitepoint.com/xml-namespaces-explained/
您可以使用以下代码摆脱版本不兼容:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
//set action bar here
}
答案 1 :(得分:0)
您想在操作栏上显示操作搜索菜单
然后使用
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always"/>
答案 2 :(得分:0)
使用此:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_menu"
android:icon="@drawable/menu_icon"
android:title="@string/action_settings"
yourapp:showAsAction="ifRoom"/>
</menu>