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

whl*_*hlk 129 android button stylesheet

我的样式适用于我的整个应用程序:

AndroidManifest.xml中:

<application android:theme="@style/ApplicationStyle" android:icon="@drawable/icon" android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)

在我的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>
Run Code Online (Sandbox Code Playgroud)

但风格并未得到应用.

对不起,如果我只是在用假名字ApplicationStyle- Item,但我不知道在哪里找对象名称和简单的假设,即android:button适用于所有的按钮.

Dan*_*Lew 201

对于Android样式,您可以引用Android已布置的预设属性R.attr.在这种情况下,它看起来像你想要引用android:buttonStyle.我认为这会奏效:

<style name="ApplicationStyle" parent="android:Theme">
  <item name="android:buttonStyle">@style/CKButton</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • 只需注意一点:如果CKButton样式没有继承@android:style/Widget.Button,该按钮将停止工作. (31认同)
  • `parent ="android:Widget.Button"和`parent = @ android:style/Widget.Button`有什么区别? (8认同)

STA*_*YER 11

对于 Material 组件主题,它会是这样的:

<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>
Run Code Online (Sandbox Code Playgroud)