3

一段时间以来,我一直在努力解决这个问题,但没有任何运气。我android.support.v7.widget.Toolbar在我的应用程序(支持 Android API 11 及更高版本)中使用它,并希望对其进行样式设置。这是我的尝试方式:

我的活动布局 XML 包含:

        <android.support.v7.widget.Toolbar
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="?attr/foo" />

res/values/attr.xml包含(这是我定义属性的地方):

        <attr name="foo" format="reference" />

res/values/Themes.xml

    <style name="AppTheme" parent="Theme_one">
    </style>
    <style name="Theme_one" parent="@style/Theme.AppCompat.Light">
        <item name="windowActionBar">false</item> 
        <item name="foo">@style/foo_style</item>
        <!-- bunch of other styles -->
    </style>

res/values/Styles.xml

<style name="foo_style" parent="@style/Theme.AppCompat.Light">
    <item name="android:background">@color/actionBarDark</item>
</style>

res/values-v21/Themes.xml

<style name="AppTheme" parent="Theme_one">
    <!-- some v21 specific items not related to toolbar like animations etc-->
</style>

res/values-v21/Styles.xml

<style name="foo_style" parent="@style/Theme.AppCompat.Light">
    <item name="android:colorPrimaryDark">@color/actionBarDark</item> <!-- THIS DOES NOT WORK !!! -->
    <item name="android:background">@color/actionBarDark</item>
    <item name="android:elevation">5dp</item>
</style>

这种安排适用于 Android API v11 到 v19。我对 v21 的问题(我也尝试了没有android:前缀的 2 和 3,结果相同):

1) android:background 工作正常!
2) android:colorPrimaryDark不起作用!
3) android:elevation适用于 theToolbarToolbar按钮的标题,如下所示。这是预期的吗?
在此处输入图像描述

我错过了什么?显然我没有以正确的方式进行造型,但找不到任何谈论toolbar造型的资源!

4

1 回答 1

1

我通过移动以下内容让colorPrimaryDark工作:

<item name="colorPrimaryDark">@color/actionBarDark</item>

res/values-v21/Styles.xmlres/values-v21/Themes.xml

我通过将其从所有样式或主题 xml 中删除并将其放入声明中来使海拔工作。android.support.v7.widget.Toolbar

另外,如果我在这里定义另一个主题并使用 Content.setTheme() 在应用程序中动态更改它,主题会更改,但状态栏颜色不会。欢迎任何建议。

于 2014-11-09T04:05:05.937 回答