Android按钮样式,适用于所有不在设备上工作的按钮

时间:2015-08-07 12:05:36

标签: android

我尝试为我的应用中的所有按钮制作自定义按钮样式,就像在此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中预览。

enter image description here

我的设备(s5 mini android 4.4.2)

enter image description here 注意我不对活动应用任何不同的样式/主题

2 个答案:

答案 0 :(得分:0)

尝试其中一个:

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

android:theme="@style/AppTheme"

将样式应用于按钮:

style="@style/MyButtonStyle"

如果您使用的是compat库,则可能会出现错误,具体取决于您的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>

答案 1 :(得分:0)

我认为应该是

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

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

使用@android@style