【问题标题】:How do I apply a style to all buttons of an Android application如何将样式应用于 Android 应用程序的所有按钮
【发布时间】:2011-01-25 12:47:51
【问题描述】:

我的整个应用程序都应用了一种样式:

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

【问题讨论】:

标签: android button stylesheet


【解决方案1】:

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

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

【讨论】:

  • 天哪,我一直在寻找这样的功能。不知道为什么按钮的 textColor 不遵循主题的 textColor 属性。非常感谢!
  • 任何人都不知道如何为微调器做到这一点?
  • 请注意:如果CKButton样式不继承@android:style/Widget.Button,按钮将停止工作。
  • parent="android:Widget.Button"parent=@android:style/Widget.Button 有什么区别?
  • 为什么布局编辑器不按照主题中设置的按钮样式预览更改
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多