Chr*_*sen 9 android android-layout android-alertdialog android-support-library androiddesignsupport
我遇到了AlertDialog的问题.这些按钮不再使用accentColor来设置按钮文本颜色.
我正在使用最新的支持库v24.2.1.我通过以下方式在styles.xml中设置对话框的样式:
<style name="Base.Theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:alertDialogTheme">@style/Widget.DialogStyle</item>
<item name="alertDialogTheme">@style/Widget.DialogStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并且Widget.DialogStyle看起来像这样:
<style name="Widget.DialogStyle" parent="@style/Theme.AppCompat.Light.Dialog.Alert">
<item name="android:colorAccent" tools:targetApi="lollipop">@color/primaryColor</item>
<item name="colorAccent">@color/primaryColor</item>
<item name="android:textColorPrimary">@color/primaryText</item>
<item name="android:textColor">@color/primaryText</item>
<item name="android:background">@color/backgroundColor</item>
<item name="android:textAppearanceLarge">@color/primaryText</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在app API低于24时,对话框按钮用colorAccent着色,但在API 24上,这不再是行为(文本是黑色,应该是橙色).请参阅以下屏幕截图.
有没有人知道如何让按钮上的accentColor?谢谢.
0X0*_*gar 14
对于某些AlertDialog实现,按钮包含在ButtonBar中并从中获取样式buttonBarButtonStyle.因此,您必须覆盖从父主题(Theme.AppCompat.Light.Dialog.Alert)继承的设置.
将以下项添加到Widget.DialogStyle:
<item name="buttonBarButtonStyle">@style/MyButtonStyle</item>
Run Code Online (Sandbox Code Playgroud)
并添加另一个名为MyButtonStyle这样的样式:
<style name="MyButtonStyle" parent="Widget.AppCompat.Button.Borderless">
<!-- Set background drawable and text size of the buttons here
<item name="android:background">@color/my_dialog_dark</item>-->
<item name="android:textSize">18sp</item>
<!-- this is the button text color! -->
<item name="android:textColor">@color/primaryColor</item>
</style>
Run Code Online (Sandbox Code Playgroud)
编辑
感谢kirtan403指出这一点:如果Widget.AppCompat.Button.Borderless不符合您的要求,您还可以使用另一种父样式.
nicola.v的一个例子... @ icapps.com使用Widget.AppCompat.Button.ButtonBar.AlertDialog按钮的父样式可以在AOSP问题220699下找到:colorAccent不适用于Android N上的AlertDialog按钮.
| 归档时间: |
|
| 查看次数: |
2726 次 |
| 最近记录: |