我正在使用支持库AppCompat v7 22.2。我的应用使用了我设置的轻量级主题,如下所示
<style name="Theme.SM3Theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/s3m_primary</item>
<item name="colorPrimaryDark">@color/s3m_primary_dark</item>
<item name="colorAccent">@color/s3m_accent</item>
</style>
在我的清单中我有
<application
android:allowBackup="false"
android:icon="@drawable/icon"
android:theme="@style/Theme.SM3Theme"
我希望我的工具栏以黑暗为主题,所以我在深色背景上获得浅色,如此
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/sm3_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/s3m_primary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Theme.AppCompat"
app:popupTheme="@style/ThemeOverlay.AppCompat"
android:gravity="center" >
它几乎可以工作。我没有发布图像所需的10个声誉,但DrawerLayout的汉堡图标始终是黑色的,与全局主题的Light主题一致。后箭头和标题文本为浅色/白色,与工具栏中指定的主题一致。
我似乎无法改变这一点。在版本21中工作得很好,但之后我没有使用Theme.AppCompat.Light.NoActionBar,直到我得到了#34; IllegalArgumentException:AppCompat不支持当前的主题功能&#34;错误。
有人知道如何让它发挥作用吗?发生在Lollipop和Jellybean 4.3上。
答案 0 :(得分:1)
在您的应用主题Theme.SM3Theme
中添加以下内容<item name="drawerArrowStyle">@style/Widget.SM3Theme.DrawerArrowToggle</item>
创建样式Widget.SM3Theme.DrawerArrowToggle,如下所示:
<style name="Widget.SM3Theme.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="color">@android:color/white</item>
</style>
答案 1 :(得分:0)
您使用的是错误的主题,您需要在工具栏中使用这些主题
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
答案 2 :(得分:0)
您应该能够使用colorControlNormal
属性更改该颜色。尝试定义新样式:
<style name="ToolbarTheme" parent="Theme.AppCompat">
<item name="colorControlNormal">@color/white</item>
</style>
并在工具栏上使用android:theme="@style/ToolbarTheme"
。
看起来AppCompat的ThemeOverlay
将colorControlNormal
属性设置为android:textColorPrimary
,这绝对不是我们想要的,因为它会坚持主题在你的情况下,你已经设置了一个轻型的。