材质组件未使用主题中声明的颜色强调

时间:2018-09-21 12:00:52

标签: android android-theme android-styles material-components

我的主要应用程序主题父主题是MaterialComponents主题。我更改了颜色,但材质组件(MaterialButton,InputLayout,EditText)未使用我的强调色(它们使用了某些蓝色,我声明的口音颜色是蓝绿色) 有什么问题如何处理主题化材料组件的最佳方法是什么?

我的主要主题:

    <style name="AppTheme" parent="Theme.MaterialComponents">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

编辑: 将主题更改为Theme.MaterialComponents.Bridge不能解决该问题。

5 个答案:

答案 0 :(得分:0)

Theme.AppCompat继承您的应用主题,例如:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
</style>

请注意,您会遇到深色或浅色主题,但是您需要扩展Theme.AppCompat

答案 1 :(得分:0)

尝试像这样更改您的styles.xml:

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

如果可以,请告诉我

编辑:尝试点击此链接来设置材料组件https://medium.com/@pedromassango/android-material-design-components-setup-google-i-o18-part-1-8894f315b5e

答案 2 :(得分:0)

就我而言,问题是为特定API声明了不同样式的xml。我犯了一个错误,在测试时,在styles.xml之前应用了其他styles-v21.xml。 长话短说,请检查其他变体中是否没有错误。我宣布该变体错误。

答案 3 :(得分:0)

也许您应该尝试使用colorAccent的次要实例

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Original AppCompat attributes. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorSecondary">@color/colorAccent</item>
</style>

这对我有用

答案 4 :(得分:0)

对于那些尝试使用从Theme.MaterialComponents.*继承的主题的人,请记住不要使用常规的Button类,而应该使用com.google.android.material.button.MaterialButton

代替:

<Button
  (...)
  style="@style/Widget.MaterialComponents.Button" />

请务必使用:

<com.google.android.material.button.MaterialButton
  (...)
  style="@style/Widget.MaterialComponents.Button" />

在那里。没什么可羞耻的。 :)