首页 文章

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

提问于
浏览
0

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

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

但是,颜色是错误的 . 红色圆圈内的加号图标的可绘制图像( .png )应该是白色的(如图像所示),但是's being tinted blue and I'我不知道如何防止这种情况 .

由于 styles.xml 中的 textColorSecondary 值,它似乎是蓝色的:

<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 的值更改并保持其原始的白色?


作为一个附加的问题,我如何完全设置侧边栏的样式(包括副 Headers 文本颜色,列表项文本颜色等)?我在网上找不到任何教程 .

1 回答

  • 0

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

    只需执行以下操作:

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

相关问题