【问题标题】:redline under android:showAsAction="ifRoom|withTextandroid:showAsAction="ifRoom|withText 下的红线
【发布时间】:2015-06-16 16:08:13
【问题描述】:

我正在尝试在我的 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>

在“ifRoom|withText”的每一行,有一个红色的下划线和黄色的框:

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

有人知道是什么问题吗?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    您应该使用 app 命名空间作为 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>
    

    【讨论】:

      【解决方案2】:

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

      命名空间包含在添加到根&lt;menu&gt; 标记的建议代码中

      xmlns:app="http://schemas.android.com/apk/res/auto"
      

      然后您可以将app:showAsAction 添加到您的&lt;item&gt; 标签中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        • 1970-01-01
        • 2020-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        相关资源
        最近更新 更多