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


131

我已经将样式应用于整个应用程序:

AndroidManifest.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适用于所有按钮。


Answers:


206

对于Android样式,您可以参考Android中布置的预设属性R.attr。在这种情况下,您似乎要参考android:buttonStyle。我认为这会起作用:

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

1
天哪,多年来我一直在寻找这种功能。不知道为什么按钮的textColor不跟随主主题的textColor属性。非常感谢!
Fenix Voltres 2012年

有人没有为旋转器做这个吗?
Mike6679 2013年

31
请注意:如果CKButton样式不继承@android:style / Widget.Button,则该按钮将停止工作。
詹姆斯

9
parent="android:Widget.Button"和之间有什么区别parent=@android:style/Widget.Button
错误发生

为什么布局编辑器不按照主题中设置的按钮样式预览更改
Killer 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.