我一直在覆盖我的应用中的默认按钮样式:
<style name="ButtonStyle" parent="Base.Widget.AppCompat.Button">
<item name="android:textAllCaps">false</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/primaryTextContrast</item>
<item name="android:background">@drawable/button</item>
</style>
在Nougat之前工作正常,但是对于Nougat来说,有一个变化(我认为是一个错误修复),这样的风格也适用于对话框中的按钮,而在以前的版本中它没有。这具有在白色背景上给对话框按钮白色文本的效果。
如果相关,则button
是drawable
中的9补丁,并在drawable-v21
中被覆盖:
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
原色为暗色,primaryTextContrast
为白色。由于某些原因,对话框不会在牛轧糖中出现黑色按钮 - 它们似乎拾取文本颜色而不是背景。因此,我需要让对话框按钮执行默认操作,或者使按钮完全继承具有深色背景和白色文本的样式。
答案 0 :(得分:3)
@nasch,对话框按钮使用按钮栏样式。在这种情况下,您可以执行类似
的操作<style name="buttonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">@color/colorPrimary</item>
</style>
在主要样式定义中,然后定义
<style name="MyCustomTheme" parent="Theme.AppCompat">
<item name="buttonBarButtonStyle">@style/buttonBarButtonStyle</item>
...
希望这有帮助。