gpt4 book ai didi

Android 覆盖除对话框之外的所有按钮样式

转载 作者:搜寻专家 更新时间:2023-11-01 08:31:36 26 4
gpt4 key购买 nike

我一直在像这样覆盖我的应用中的默认按钮样式:

<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 中发生了变化(我认为是错误修复),因此这种样式也适用于对话框中的按钮,而在以前的版本中则不然。这具有在白色背景上为对话框按钮提供白色文本的效果。

如果相关,buttondrawable 中的 9 补丁,并在 drawable-v21 中被覆盖:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>

原色是深色,primaryTextContrast 是白色。出于某种原因,对话框在 Nougat 中不会出现深色按钮 - 它们似乎会选择文本颜色而不是背景。所以我需要要么让对话框按钮执行它们的默认操作,要么让按钮完全继承深色背景和白色文本的样式。

最佳答案

@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>
...

希望这对您有所帮助。

关于Android 覆盖除对话框之外的所有按钮样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40193818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com