android:buttonStyle和android:imageButtonStyle可以用于Theme.MaterialComponents吗?

问题描述

对于Theme.AppCompat,可以使用android:buttonStyleandroid:imageButtonStyle为所有活动分别设置ButtonImageButton的样式。它们似乎不适用于Theme.MaterialComponents。如果不是,Theme.MaterialComponents的等效项是什么? 谁能对此有所启发?

主题示例:

<style name="OnviferThemeStyle" parent="Theme.AppCompat">
     ...   

    <item name="android:buttonStyle">@style/fooButton</item>
    <item name="buttonStyle">@style/fooButton</item>
    <item name="android:imageButtonStyle">@style/fooImageButton</item>
    <item name="imageButtonStyle">@style/fooImageButton</item>

</style>

解决方法

通过MaterialComponents主题,您可以使用 materialButtonStyle 属性。

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
   <item name="materialButtonStyle">@style/....</item>
</style>

对于ImageButton当前没有材料成分。您仍然可以使用ImageButton组件和imageButtonStyle属性。