android下的redline:showAsAction =" ifRoom | withText

时间:2015-06-16 07:53:58

标签: android android-layout

我尝试在我的android中应用操作栏,我将一个菜单xml从另一个应用程序复制到当前应用程序(/res/layout/menu/actionbarmenu.xml)

这是代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/media_play"
          android:icon="@android:drawable/ic_media_play"
          android:title="@string/media_play"
          android:showAsAction="ifRoom|withText"/>
    <item android:id="@+id/media_pause"
          android:icon="@android:drawable/ic_media_pause"
          android:title="@string/media_pause" 
          android:showAsAction="ifRoom|withText"/>
    <item android:id="@+id/media_previous"
          android:icon="@android:drawable/ic_media_previous"
          android:title="@string/media_previous"
          android:showAsAction="ifRoom" />
    <item android:id="@+id/media_next"
          android:icon="@android:drawable/ic_media_next"
          android:title="@string/media_next"
          android:showAsAction="ifRoom">
    </item>
</menu>

在每一行&#34; ifRoom | withText&#34;中,会出现一个红色下划线并带有黄色框:

Should use app:showAsAction with the appcompat library with 
xmlns:app="http://schemas.android.com/apk/res/auto"

任何人都知道这是什么问题?

2 个答案:

答案 0 :(得分:2)

您应该将app namespace用作appcompat的一部分菜单。

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/auto">
    <item android:id="@+id/media_play"
        android:icon="@android:drawable/ic_media_play"
        android:title="@string/media_play"
        app:showAsAction="ifRoom|withText"/>
    <item android:id="@+id/media_pause"
        android:icon="@android:drawable/ic_media_pause"
        android:title="@string/media_pause" 
        app:showAsAction="ifRoom|withText"/>
    <item android:id="@+id/media_previous"
        android:icon="@android:drawable/ic_media_previous"
        android:title="@string/media_previous"
        app:showAsAction="ifRoom" />
    <item android:id="@+id/media_next"
        android:icon="@android:drawable/ic_media_next"
        android:title="@string/media_next"
        app:showAsAction="ifRoom">
</item> </menu>

答案 1 :(得分:1)

API 11中添加了android:showAsAction,您的应用可能降低了最低API级别。您可以使用AppCompat库来提供此参数及其所需的行为,但是,要提供必须在正确的XML命名空间中调用它的AppCompat参数。

命名空间包含在添加到根<menu>标记

的建议代码中
xmlns:app="http://schemas.android.com/apk/res/auto"

然后您可以将app:showAsAction添加到<item>代码