侧边栏中的自定义可绘制颜色不正确

时间:2015-09-29 04:22:33

标签: android android-layout android-xml android-theme android-styles

我已经在我的应用中添加了一个侧边栏(导航抽屉),目前看起来像这样:

http://i.imgur.com/aQOnNY4.png

然而,颜色是错误的。红色圆圈内的加号图标的可绘制图像(.png)应为白色(如图像所示),但它是蓝色的,我不知道如何防止这种情况

由于textColorSecondary

中的styles.xml值,它似乎是蓝色的
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:textColorPrimary">@color/dark_gray</item>
    <item name="android:textColorSecondary">@color/blue</item>
</style>

以下是侧边栏的列表项目:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item android:title="Menu">
            <menu>
                <item
                    android:icon="@drawable/ic_home_black_48dp"
                    android:title="One"
                    android:checked="true"/>
                <item
                    android:icon="@drawable/ic_favorite_black_48dp"
                    android:title="Two" />
                <item
                    android:icon="@drawable/custom_icon"
                    android:title="Three" />
            </menu>
        </item>
    </group>
</menu>

以下是列表中第三项使用的custom_icon drawable:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/circle_icon">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid
                android:color="#ff0000"
                />
            <size
                android:width="20dp"
                android:height="20dp"
                />
        </shape>
    </item>

    <item
        android:drawable="@drawable/ic_add_white"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"
        android:left="2dp"
        />

</layer-list>

如何防止加号图标的颜色被textColorSecondary的值更改并保持原始的白色?

作为一个额外的问题,我如何完全设置侧边栏的样式(包括副标题文字颜色,列表项文字颜色等)?我无法在线找到任何教程。

1 个答案:

答案 0 :(得分:0)

我已经解决了自己的问题。

只需执行以下操作:

NavigationView sidebar = (NavigationView) findViewById(R.id.sidebar);
sidebar.setItemIconTintList(null);