【问题标题】:Android button style for all buttons not working on device所有按钮的 Android 按钮样式在设备上不起作用
【发布时间】:2015-10-30 20:59:51
【问题描述】:

我尝试为我的应用程序中的所有按钮制作自定义按钮样式,例如 question/solution。我想这样做是因为我不想添加:

android:style="@style/MyButtonStyle"

到每个按钮

我当前的代码。

styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>

<!-- Button style. -->
<style name="MyButtonStyle" parent="android:style/Widget.Button">
    <item name="android:textColor">@color/ColorTextIcons</item>
    <item name="android:background">@color/ColorAccent</item>
</style>

清单

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

在 android studio 的预览中看起来不错,但是当我运行应用程序时,我得到了默认的按钮样式。据我所知,它与 120 票赞成的公认答案相同。

代码有什么问题,为什么在 android studio 中显示不同?

在 android studio 中预览。

我的设备(s5 mini android 4.4.2)

注意我不会对活动应用任何不同的样式/主题

【问题讨论】:

    标签: android


    【解决方案1】:

    尝试其中一种:

    将主题应用于活动/应用程序:

    android:theme="@style/AppTheme"
    

    将样式应用于按钮:

    style="@style/MyButtonStyle"
    

    如果您使用的是兼容库,您可能会收到取决于您的 android 版本的错误:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:buttonStyle">@style/MyButtonStyle</item>
        <item name="buttonStyle">@style/MyButtonStyle</item>
    </style>
    
    <style name="MyButtonStyle" parent="android:style/Widget.Button">
        <item name="android:textColor">@color/ColorTextIcons</item>
        <item name="android:background">@color/ColorAccent</item>
        <item name="textColor">@color/ColorTextIcons</item>
        <item name="background">@color/ColorAccent</item>
    </style>
    

    【讨论】:

    • 试过了,对我没有任何改变。
    • 我已经编辑了我的答案。我希望这将比以前对您有所帮助。如果没有,请尝试删除父标签。
    • android:style="@style/MyButtonStyle" 有效,但正如我在问题中发布的那样,我不想为每个按钮添加样式,但想要默认样式。
    • 最后一次机会,我再次编辑了我的答案。抱歉,我无法检查我的答案,因为我没有可用的笔记本电脑。
    【解决方案2】:

    我觉得应该是

    <style name="MyButtonStyle" parent="@android:style/Widget.Button">
    

    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
    

    使用@android@style

    【讨论】:

    • 试过了,没区别
    猜你喜欢
    • 2017-10-28
    • 2015-07-26
    • 1970-01-01
    • 2015-09-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多