android – Appcompat警报对话框操作按钮背景按下状态

我正在从appcompat v7 22.1.1尝试新的AlertDialog.

它在图像中的效果非常好(在所有Android版本中).

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>

其中dialogBu​​ttonSelector是我们的自定义drawable选择器.

不幸的是在dialog_button上设置背景会破坏我们的填充和边距,所以我需要再次设置它.

dialog_button样式可以通过Widget.AppCompat.Button.buttonbar.AlertDialog继承,但我发现它缺少像textStyle粗体样式.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...