更改默认按钮样式
Change default button style
我想为我的按钮定义默认样式,这样我就不必在每个按钮中手动键入 style="@style/mainButtonStyle"
。我已经定义了样式。
<style name="mainButtonStyle" parent="android:Widget.Material.Button">
<item name="android:background">@drawable/button_default_background</item>
<item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">sans-serif-light</item>
</style>
并且已经在应用的主题中添加了 android:buttonStyle
属性。
themes.xml
<!-- Base application theme. -->
<style name="Theme.PlanShopping" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#AA0000</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSurface">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
<item name="android:buttonStyle">@style/mainButtonStyle</item>
</style>
Android 清单默认设置了 android:theme
属性。
<application
android:name=".PlannerApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PlanShopping"
tools:targetApi="31">
...
</application>
为什么不更改默认按钮样式?如果我在按钮内手动键入样式,则该样式可以正常工作。但这不是我想要的结果。我如何设置它为默认值?我尝试继承不同类型的按钮:android:Widget.Button
、android:Widget.Holo.Button
。此外,不同的 <Button>
类型也没有帮助。现在,我使用默认的 <Button>
组件(不是 material 或 holo)。
如果按钮是 MaterialButton,您需要指定:
<item name="materialButtonStyle">@style/mainButtonStyle</item>
我想为我的按钮定义默认样式,这样我就不必在每个按钮中手动键入 style="@style/mainButtonStyle"
。我已经定义了样式。
<style name="mainButtonStyle" parent="android:Widget.Material.Button">
<item name="android:background">@drawable/button_default_background</item>
<item name="android:textAllCaps">true</item>
<item name="android:textStyle">bold</item>
<item name="android:fontFamily">sans-serif-light</item>
</style>
并且已经在应用的主题中添加了 android:buttonStyle
属性。
themes.xml
<!-- Base application theme. -->
<style name="Theme.PlanShopping" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">#AA0000</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSurface">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
<item name="android:buttonStyle">@style/mainButtonStyle</item>
</style>
Android 清单默认设置了 android:theme
属性。
<application
android:name=".PlannerApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.PlanShopping"
tools:targetApi="31">
...
</application>
为什么不更改默认按钮样式?如果我在按钮内手动键入样式,则该样式可以正常工作。但这不是我想要的结果。我如何设置它为默认值?我尝试继承不同类型的按钮:android:Widget.Button
、android:Widget.Holo.Button
。此外,不同的 <Button>
类型也没有帮助。现在,我使用默认的 <Button>
组件(不是 material 或 holo)。
如果按钮是 MaterialButton,您需要指定:
<item name="materialButtonStyle">@style/mainButtonStyle</item>