如何将样式应用于 Android 应用程序的所有按钮

我有一个风格适用于我的整个应用程序:

Xml:

<application android:theme="@style/ApplicationStyle" android:icon="@drawable/icon" android:label="@string/app_name">

在我的 styles.xml 中:

 <style name="ApplicationStyle" parent="android:Theme">
<item name="android:button">@style/CKButton</item>
</style>
<style name="CKButton" parent="android:style/Widget.Button">
<item name="android:textSize">19sp</item>
<item name="android:layout_margin">0dip</item>
<item name="android:background">#ff0000</item>
</style>

但这种风格并没有得到应用。

对不起,如果我只是在 ApplicationStyle-Item中使用了假名,但是我不知道在哪里查找对象名,只是假设 android:button适用于所有按钮。

96025 次浏览

对于 Android 样式,您可以引用 Android 在 R.attr中设置的预设属性。在本例中,看起来您想要引用 android:buttonStyle。我认为这个方法可行:

<style name="ApplicationStyle" parent="android:Theme">
<item name="android:buttonStyle">@style/CKButton</item>
</style>

材质组件主题应该是这样的:

<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>


<item name="materialButtonStyle">@style/AppTheme.Button</item>
</style>