这在AppCompat库的v23.0.0中得到了增强
随着更多主题的加入,包括
Widget.AppCompat.Button.Colored
首先,包括appCompat依赖关系(如果还没有的话)
compile('com.android.support:appcompat-v7:23.0.0') {
exclude group: 'com.google.android', module: 'support-v4'
}
现在因为你需要使用compat的v23版本,你也需要针对SDK-v23 !
compileSdkVersion = 23
targetSdkVersion = 23
在你的价值观/主题中
<item name="android:buttonStyle">@style/BrandButtonStyle</item>
在你的价值观/风格中
<style name="BrandButtonStyle" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/yourButtonColor</item>
<item name="android:textColor">@color/White</item>
</style>
在你的values-v21/样式中
<style name="BrandButtonStyle" parent="Widget.AppCompat.Button.Colored">
<item name="android:colorButtonNormal">@color/yourButtonColor</item>
<item name="android:textColor">@color/White</item>
</style>
因为你的按钮主题是基于Widget.AppCompat.Button.Colored按钮上的文本颜色默认是白色!
但似乎有一个问题,当你禁用按钮,按钮将改变其颜色为浅灰色,但文本颜色将保持白色!
解决这个问题的方法是专门将按钮上的文本颜色设置为白色!
正如我在上面所示的风格所做的那样。
现在你可以简单地定义你的按钮,让AppCompat做剩下的:)
<Button
android:layout_width="200dp"
android:layout_height="48dp" />
禁用状态
启用状态
编辑:
添加<Button android:theme="@style/BrandButtonStyle"/>