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