将 Android Material Components 版本从 1.0.0 更新到 1.1.0,颜色全乱了

yao*_*yao 7 android kotlin material-components material-components-android

在我将材料组件版本从 1.0.0 更新到 1.1.1 后,应用程序内部的颜色变得一团糟。例如颜色重音不起作用,按钮颜色未应用,底部导航视图变为黑色..请帮忙,提前致谢!

values/style.xml(此处的样式不起作用):

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="Button" parent="@style/Widget.MaterialComponents.Button">
    <item name="cornerRadius">@dimen/button_radius</item>
    <item name="fontFamily">@font/lato_regular_400</item>
    <item name="android:textAllCaps">false</item>
</style>
<style name="Button.Next">
    <item name="fontFamily">@font/lato_bold_700</item>
    <item name="android:textSize">@dimen/_18pxsp</item>
    <item name="android:textAllCaps">false</item>
    <item name="cornerRadius">@dimen/_40sdp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

values-v23/style.xml(这里的样式有效):

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowLightStatusBar">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

按钮.xml:

<com.google.android.material.button.MaterialButton
        android:id="@+id/btn_save"
        style="@style/Button.Next"
        android:layout_width="@dimen/button_width"
        android:onClick="@{click}"
        android:layout_height="@dimen/button_height"
        android:layout_marginBottom="@dimen/_20pxdp"
        android:text="@{buttonText}" />
Run Code Online (Sandbox Code Playgroud)

但是即使是 v23 风格的工作,颜色仍然很奇怪,与更新材料组件之前的版本相比。很难涂回相同的颜色。

ade*_*dek 2

我们正式发布了 Material Components 1.1.0

尝试使用parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge"

查看文档。 https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md#bridge-themes-bridge-themes

如果您无法将主题更改为从 Material Components 主题继承,则可以从 Material Components Bridge 主题继承。

<style name="Theme.MyApp" parent="**Theme.MaterialComponents.Light.Bridge**">
    <!-- ... -->
</style>
Run Code Online (Sandbox Code Playgroud)

在你的情况下改变:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)

到:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
Run Code Online (Sandbox Code Playgroud)