showAsAction =“ifRoom”并不像它应该的那样行事

时间:2014-03-17 05:21:49

标签: android

我使用"最低要求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及更高版本。

请帮忙解决这个问题。

3 个答案:

答案 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>