在导航抽屉菜单项中更改开关颜色

时间:2018-09-30 17:49:45

标签: android android-layout android-switch

我无法更改导航抽屉开关项目的颜色。我希望每个人都有与之关联的自定义颜色。

我已经用如下菜单定义了我的导航抽屉:

<item
    android:title="@string/nav_drawer_services_title">
    <menu>
        <group android:checkableBehavior="none">
            <item
                android:id="@+id/Red_selector"
                android:title="@string/nav_drawer_red_title"
                app:actionLayout="@layout/switch_layout"/>
            <item
                android:id="@+id/Blue_selector"
                android:title="@string/nav_drawer_blue_title"
                app:actionLayout="@layout/switch_layout"/>
        </group>
    </menu>
</item>

我的switch_layout.xml是这样的:

<Switch
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:onClick="toggleService"
android:checkable="true"
android:checked="true"
style="@style/MyCustomSwitchTheme"
/>

我尝试按照此处的建议Change "on" color of a Switch更改MyCustomSwitchTheme,但开关项保持相同的颜色。

为什么我的自定义主题样式不会覆盖默认样式?我似乎无法从colorAccentcolors.xml中定义的AppTheme更改这些开关。

有人知道解决这个问题的方法吗?

编辑:以下是样式代码,很抱歉不包含在OP中。

<style name="MyCustomSwitchTheme">
    <!-- active thumb & track color (30% transparency) -->
    <item name="colorControlActivated">#46bdbf</item>

    <!-- inactive thumb color -->
    <item name="colorSwitchThumbNormal">@color/light_gray_color</item>

    <!-- inactive track color (30% transparency) -->
    <item name="android:colorForeground">#42221f1f</item>
</style>

1 个答案:

答案 0 :(得分:3)

只需使用android:theme="@style/MyCustomSwitchTheme"

代替style="@style/MyCustomSwitchTheme"