代码之家  ›  专栏  ›  技术社区  ›  rafaelasguerra

android:按钮样式已停止材料设计1.2.0

  •  1
  • rafaelasguerra  · 技术社区  · 3 年前

    当material design library更新为1.2.1(也可能在1.2.0中)时,在应用程序主题上默认应用按钮样式将停止工作。

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="android:buttonStyle">@style/AppTheme.Button.GrayGreen</item>
    </style>
    
    <style name="AppTheme.Button" parent="Widget.MaterialComponents.Button">
    ...
    </style>
    
    <style name="AppTheme.Button.GrayGreen">
        <item name="android:backgroundTint">@color/green</item>
        <item name="android:textColor">@color/white</item>
    </style>
    

    也尝试过:

    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="buttonStyle">@style/AppTheme.Button.GrayGreen</item>
    </style>
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   SlothCoding    3 年前

    首先,材料按钮使用 app:backgroundTint 用于背景色,而不是 android 属性。另外,根据我在 material.io 是在里面用造型的时候吗 style.xml theme.xml 您需要为每种类型的MaterialButton组件设置样式。这样地:

    <style name="Theme.App" parent="Theme.MaterialComponents.*">
        ...
        <item name="borderlessButtonStyle">@style/Widget.App.Button.TextButton</item>
        <item name="materialButtonOutlinedStyle">@style/Widget.App.Button.OutlinedButton</item>
        <item name="materialButtonStyle">@style/Widget.App.Button</item>
    </style>
    
    <style name="Widget.App.Button.TextButton" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="materialThemeOverlay">@style/ThemeOverlay.App.Button.TextButton</item>
        <item name="android:textAppearance">@style/TextAppearance.App.Button</item>
        <item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item>
    </style>
    
    ...
    ...
    

    等等。查看链接了解更多信息,它位于页面的最下方。