首页 > 解决方案 > MaterialDrawerTheme.ActionBar - android.support.v7.preference.SwitchPreferenceCompat 的显示状态不正确

问题描述

安卓工作室 4

 defaultConfig {
        minSdkVersion 17
        targetSdkVersion 28

在我的 xml

<android.support.v7.preference.SwitchPreferenceCompat
            android:defaultValue="true"
            android:icon="@drawable/ic_fingerprint"
            android:key="fingerprint"
            android:layout="@layout/preference_layout"
            android:persistent="true"

如果我设置这个主题:

 <style name="AppTheme" parent="MaterialDrawerTheme.ActionBar">

<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">#3a9a20</item>
<item name="android:textColor">@color/primary_text</item>
<item name="android:textColorSecondary">@color/secondary_text</item>
<item name="preferenceTheme">@style/PreferenceTheme</item>
<item name="android:windowContentTransitions" tools:targetApi="lollipop">true</item>
<item name="android:windowAnimationStyle">@style/AppAnimationStyle</item>
<item name="android:windowBackground">@color/background</item>
<item name="actionModeStyle">@style/ActionMode</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeCloseDrawable">@drawable/ic_close</item>

结果:

在此处输入图像描述

如您所见,打开是正确的显示,但关闭不是正确的显示

现在我将主题更改为:

 <style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">#3a9a20</item>
    <item name="android:textColor">@color/primary_text</item>
    <item name="android:textColorSecondary">@color/secondary_text</item>
    <item name="preferenceTheme">@style/PreferenceTheme</item>
    <item name="android:windowContentTransitions" tools:targetApi="lollipop">true</item>
    <item name="android:windowAnimationStyle">@style/AppAnimationStyle</item>
    <item name="android:windowBackground">@color/background</item>
    <item name="actionModeStyle">@style/ActionMode</item>
    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeCloseDrawable">@drawable/ic_close</item>

现在结果:

在此处输入图像描述

现在两种状态(开/关)都显示正确。

问题是:为什么主题MaterialDrawerTheme.ActionBar不正确显示组件“ android.support.v7.preference.SwitchPreferenceCompat ”的状态?

标签: android

解决方案


推荐阅读