我的活动的操作栏(v7.Toolbar)中有一个SwitchCompat。我希望它在关闭时是colorStructure,在打开时是colorAccent。它在Lollipop前工作正常,但在Lollipop上,激活的开关是用我没有定义的颜色绘制的。它看起来像" material_deep_teal_200"。这是我唯一的风格定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Default" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--<item name="android:windowNoTitle">true</item>-->
<item name="windowActionBar">false</item>
<item name="colorSwitchThumbNormal">@color/colorStructure</item>
<item name="colorControlNormal">@color/colorPrimary</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
<!--<item name="selectBarStyle">@style/DefaultSelectBar</item>-->
</style>
</resources>
&#13;
这就是活动xml:
的开始
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
app:theme="@style/Widget.AppCompat.Toolbar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:background="@color/colorPrimary"
android:paddingRight="@dimen/abc_dropdownitem_text_padding_right">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingRight="@dimen/abc_action_bar_icon_vertical_padding_material">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/helpButton"
android:src="@drawable/ic_help_large"
android:background="#00000000"
android:layout_gravity="center"/>
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/master_switch"
android:clickable="true"
android:checked="true"
android:gravity="center"
android:layout_gravity="right"
/>
</FrameLayout>
</android.support.v7.widget.Toolbar>
&#13;
那么我需要更改什么才能使开关在KitKat和Lollipop上具有相同的自定义颜色?
由于
答案 0 :(得分:0)
实际上,上面提到的代码工作得很好 - 也在Lollipop上。在清理有问题的代码之后,我肯定在验证过程中犯了一个错误。
最初的问题是我在values-v21中进行了配置。我假设当我将所有内容简化为默认的xml文件时,有一个拼写错误或类似的内容。
简而言之,所提供的代码是有效的,我假设在values-v21中配置也不会导致问题。