使用 Appcompat 在 pre-Lollipop 上错误的 Button textColor 和 drawablePadding
wrong Button textColor and drawablePadding on pre-Lollipop using Appcompat
我在 Lollipop 之前的设备上的按钮样式有误。
使用 appcompat 库进行编译。
compile 'com.android.support:appcompat-v7:23.0.1'
values/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@android:color/holo_orange_light</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="colorAccent">@android:color/holo_green_light</item>
<item name="colorControlNormal">@android:color/holo_purple</item>
<item name="colorControlHighlight">@android:color/holo_red_light</item>
<item name="colorButtonNormal">@android:color/holo_green_light</item>
<item name="android:buttonStyle">@style/ButtonTheme</item>
</style>
<style name="ButtonTheme" parent="android:Widget.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
v21/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ButtonTheme" parent="android:Widget.Material.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
</resources>
"New button" 通过 xml 在 ISC 上添加没有样式 textColor 和 drawablePadding。你有什么改正的想法吗?
问题出在您正常 styles.xml 中的 buttonStyle
。
替换
<item name="android:buttonStyle">@style/ButtonTheme</item>
有
<item name="buttonStyle">@style/ButtonTheme</item>
它应该可以工作。
因此,对于 Lollipop 之前的设备,可以这样操作:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@android:color/holo_orange_light</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="colorAccent">@android:color/holo_green_light</item>
<item name="colorControlNormal">@android:color/holo_purple</item>
<item name="colorControlHighlight">@android:color/holo_red_light</item>
<item name="colorButtonNormal">@android:color/holo_green_light</item>
<item name="buttonStyle">@style/ButtonTheme</item>
<item name="android:buttonStyle">@style/ButtonProgramAddTheme</item>
</style>
<style name="ButtonTheme" parent="Widget.AppCompat.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
<style name="ButtonProgramAddTheme" parent="android:Widget.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
同样,对于相同的程序视图,我们可以通过选择器添加自定义背景,因为 AppCompat 实际上不支持 Lollipop 之前的设备上的 Button 小部件。
我在 Lollipop 之前的设备上的按钮样式有误。
使用 appcompat 库进行编译。
compile 'com.android.support:appcompat-v7:23.0.1'
values/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@android:color/holo_orange_light</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="colorAccent">@android:color/holo_green_light</item>
<item name="colorControlNormal">@android:color/holo_purple</item>
<item name="colorControlHighlight">@android:color/holo_red_light</item>
<item name="colorButtonNormal">@android:color/holo_green_light</item>
<item name="android:buttonStyle">@style/ButtonTheme</item>
</style>
<style name="ButtonTheme" parent="android:Widget.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
v21/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ButtonTheme" parent="android:Widget.Material.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
</resources>
"New button" 通过 xml 在 ISC 上添加没有样式 textColor 和 drawablePadding。你有什么改正的想法吗?
问题出在您正常 styles.xml 中的 buttonStyle
。
替换
<item name="android:buttonStyle">@style/ButtonTheme</item>
有
<item name="buttonStyle">@style/ButtonTheme</item>
它应该可以工作。
因此,对于 Lollipop 之前的设备,可以这样操作:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@android:color/holo_orange_light</item>
<item name="colorPrimaryDark">@android:color/holo_orange_dark</item>
<item name="colorAccent">@android:color/holo_green_light</item>
<item name="colorControlNormal">@android:color/holo_purple</item>
<item name="colorControlHighlight">@android:color/holo_red_light</item>
<item name="colorButtonNormal">@android:color/holo_green_light</item>
<item name="buttonStyle">@style/ButtonTheme</item>
<item name="android:buttonStyle">@style/ButtonProgramAddTheme</item>
</style>
<style name="ButtonTheme" parent="Widget.AppCompat.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
<style name="ButtonProgramAddTheme" parent="android:Widget.Button">
<item name="android:textColor">@android:color/white</item>
<item name="android:textAllCaps">true</item>
<item name="android:drawablePadding">10dp</item>
<item name="android:padding">10dp</item>
</style>
同样,对于相同的程序视图,我们可以通过选择器添加自定义背景,因为 AppCompat 实际上不支持 Lollipop 之前的设备上的 Button 小部件。