Android - 矢量drawable导航抽屉图标错误,尽管添加矢量drawable库支持

时间:2016-08-21 03:48:04

标签: android android-layout android-support-library android-icons android-support-design

我正在尝试使用矢量绘图用于导航抽屉图标,但我在棒棒糖前设备上遇到错误。我正在使用gradle 2.1.3。这是我做的:

我添加了vectorDrawables.useSupportLibrary = true和相应的依赖项:

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    compile 'com.android.support:animated-vector-drawable:24.2.0'
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:cardview-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.android.support:percent:24.2.0'
    compile 'com.android.support:recyclerview-v7:24.2.0'
    compile "com.android.support:support-annotations:24.2.0"
    compile 'com.android.support:support-v4:24.2.0'
    compile 'com.android.support:support-vector-drawable:24.2.0'
    compile 'com.flaviofaria:kenburnsview:1.0.7'
}

然后我将矢量drawable .xml文件(即ic_shopping_cart.xml)添加到res/drawable文件夹。

然后我在导航抽屉菜单xml(即activity_main_drawer.xml)中使用矢量drawables,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_shopping_cart"
            app:icon="@drawable/ic_shopping_cart"
            android:title="Shopping Cart" />
    </group>
</menu>

这适用于&gt; API 21,但在棒棒糖前设备上崩溃,因为vectorDrawables.useSupportLibrary = true禁用旧设备上的PNG生成。我可以从vectorDrawables.useSupportLibrary = true删除build.gradle,因此较旧的设备可以回退到导航抽屉图标的PNG,但除非我别无选择,否则我不想这样做。

我尝试将app:icon更改为app:srcCompat并将应用名称空间(即xmlns:app="http://schemas.android.com/apk/res-auto")添加到导航抽屉xml中,但不显示任何图标。

添加向量可绘制库支持可能有助于为<ImageView>设置可绘制向量,但菜单布局中的<item>又如何呢?

我错过了什么吗?还是不支持?或其他什么?

对于处理app:src <ImageView>属性的类似问题,我的问题不应视为重复。我的问题与在菜单布局中处理android:icon标记的<item>属性有关。

0 个答案:

没有答案