我正在从appcompat v7 22.1.1尝试新的AlertDialog.
AlertDialog的样式就是这个. (目前我正在使用硬编码颜色值而不是颜色资源)
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimaryDark">#111111</item> <item name="colorPrimary">#00ddff</item> <item name="colorAccent">#0044aa</item> <item name="colorButtonNormal">#00aaaa</item> <item name="colorControlHighlight">#00ddff</item> <item name="alertDialogTheme">@style/AlertDialogTheme</item> </style> <style name="AlertDialogTheme" parent="Theme.AppCompat.Dialog.Alert"> <item name="colorAccent">#0044aa</item> <item name="android:background">#ffffff</item> <item name="android:textColorPrimary">#000000</item> <item name="android:windowTitleStyle">@style/MyTitleTextStyle</item> </style> <style name="MyTitleTextStyle"> <item name="android:textColor">#0044aa</item> <item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item> </style>
我的问题是,
1)如何更改图像中圆角(灰色)的statePressed颜色?
2)android> = 21中没有按下的颜色,这是什么黑客攻击?
3)如何使用不同颜色的动作按钮(是否可能)?
任何帮助都会很棒.
解决方法
您可以使用样式属性
> buttonBarButtonStyle
> buttonBarNegativeButtonStyle
> buttonBarNeutralButtonStyle
> buttonBarPositiveButtonStyle
例:
<style name="dialog_theme" parent="Theme.AppCompat.Dialog.Alert"> <item name="buttonBarNegativeButtonStyle">@style/dialog_button.negative</item> <item name="buttonBarPositiveButtonStyle">@style/dialog_button.positive</item> </style> <style name="dialog_button"> <item name="android:textStyle">bold</item> <item name="android:minWidth">64dp</item> <item name="android:paddingLeft">8dp</item> <item name="android:paddingRight">8dp</item> <item name="android:background">@drawable/dialogButtonSelector</item> </style> <style name="dialog_button.negative"> <item name="android:textColor">#f00</item> </style> <style name="dialog_button.positive"> <item name="android:layout_marginLeft">8dp</item> <item name="android:textColor">#00f</item> </style>
其中dialogButtonSelector是我们的自定义drawable选择器.
不幸的是在dialog_button上设置背景会破坏我们的填充和边距,所以我需要再次设置它.
dialog_button样式可以通过Widget.AppCompat.Button.ButtonBar.AlertDialog继承,但我发现它缺少像textStyle粗体样式.