AlertDialog 样式 - 如何更改标题、消息等的样式(颜色)

2024-03-05

我已经为这件事伤透了脑筋。我需要做的是,改变所有的风格AlertDialog在我的 Android 应用程序中 - 对话框背景需要是白色的,文本需要是黑色的。我尝试创建很多样式、主题,并从代码、清单等中应用,但就文本颜色而言没有成功AlertDialog。现在,我有最简单的代码,设置如下:

显现:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

样式.xml:

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:alertDialogStyle">@style/DialogStyle</item>
</style>

<style name="DialogStyle" parent="@android:style/Theme.Dialog">
    <!-- changing these background stuff works fine -->
    <item name="android:bottomBright">@android:color/white</item>
    <item name="android:bottomDark">@android:color/white</item>
    <item name="android:bottomMedium">@drawable/dialog_footer_bg</item>
    <item name="android:centerBright">@android:color/white</item>
    <item name="android:centerDark">@drawable/dialog_body_bg</item>
    <item name="android:centerMedium">@android:color/white</item>
    <item name="android:fullBright">@color/orange</item>
    <item name="android:fullDark">@color/orange</item>
    <item name="android:topBright">@color/green</item>
    <item name="android:topDark">@drawable/dialog_header_bg</item>

下面列出的项目不起作用(请阅读我在每个元素上方添加的注释):

    <!-- panelBackground is not getting set to null, there is something squarish around it -->
    <item name="android:panelBackground">@null</item>

    <!-- Setting this textColor doesn't seem to have any effect at all. Messages, title, button text color, whatever; nothing changes. -->
    <item name="android:textColor">#000000</item>

    <!-- Also tried with textAppearance, as follows. Didn't work -->
    <item name="android:textAppearance">?android:attr/textColorPrimaryInverse</item>

    <!-- Also tried changing textAppearancePrimary, to no avail -->
    <item name="android:textColorPrimary">#000000</item>

    <!-- Also need to change the dialog title text, tried it as follows, dint work: -->
    <item name="android:windowTitleStyle">@style/DialogWindowTitle</item>
</style>

DialogWindowTitle 定义如下:

<style name="DialogWindowTitle">
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
</style>

所以这些都不起作用。谁能告诉我我可能做错了什么,我该怎么做:

  1. 更改消息的文本颜色(内容文本)
  2. 更改标题文字颜色
  3. 去除 面板背景

注意:我需要支持API 8(2.2)以上。另外,我已经浏览了这里的大部分相关问题和谷歌小组,但无法弄清楚,尽管我有一种感觉它就在我眼皮子底下!

编辑:添加屏幕截图:


您需要为您的 AlertDialog 定义一个主题,并在您的活动主题中引用它。属性是alertDialogTheme并不是alertDialogStyle。像这样:

<style name="Theme.YourTheme" parent="@android:style/Theme.Holo">
    ...
    <item name="android:alertDialogTheme">@style/YourAlertDialogTheme</item>
</style>

<style name="YourAlertDialogTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
    <item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
    <item name="android:windowTitleStyle">...</item>
    <item name="android:textAppearanceMedium">...</item>
    <item name="android:borderlessButtonStyle">...</item>
    <item name="android:buttonBarStyle">...</item>
</style>

您将能够更改标题、消息的颜色和文本外观,并且您可以对每个区域的背景进行一些控制。我写了一个博客文章 https://web.archive.org/web/20200214041924/http://blog.supenta.com/2014/07/02/how-to-style-alertdialogs-like-a-pro/详细说明设置 AlertDialog 样式的步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AlertDialog 样式 - 如何更改标题、消息等的样式(颜色) 的相关文章

随机推荐

  • WordPress 随机数存储在哪里?

    我试图找出 WordPress 存储所有随机数的位置 但却没能找到线索 我首先检查了数据库 但找不到任何名为 wp nonces 的表 我 11 个月前发布了这个问题 我收到的所有答案都很好 对我帮助很大 但他们都没有解决 WordPres
  • 字段列表中的未知列错误 Rmysql

    我使用编写了一个 data frame dbWriteTable con name db all df overwrite T row names F 使用MySQL成功连接到MySQL 现在我有第二个数据框 它具有类似的结构并尝试使用 d
  • 如何查看给定 npm 模块的依赖关系树?

    如何获取可用于 npm 但未安装在本地的模块树 npm ll执行本地安装的软件包的工作 但它不适用于未安装的模块或全局安装的模块 I tried npm list bower但事实并非如此 无需安装即可生成NPM依赖树 使用命令建立依赖关系
  • 两个 github 帐户推送到同一个存储库 [重复]

    这个问题在这里已经有答案了 所以这是一个非常具体的用例 如果任何 GitHub 专家可以帮助我 那就太好了 在我的 Linux 笔记本电脑中 我想推送same使用两个不同的 GitHub 用户名的 GitHub 存储库 我已在本地计算机中设
  • 将负数转换为无符号类型(ushort、uint 或 ulong)

    如何将一些负数转换为unsigned types Type type typeof ushort short num 100 ushort num1 unchecked ushort num When type is known Resul
  • 存储过程和实体框架的性能

    是否有任何明显的原因可以解释为什么通过实体模型调用存储过程会导致性能比直接调用慢得多 首先 我不希望 SP 运行在exactly相同的速度 我知道 EF 必须做的许多事情在直接访问 SP 时不会被调用 除此之外 我有一个返回三列字符串的查询
  • R 中的 gsub 和 regex 问题

    我在 R 中使用 gsub 将文本添加到字符串的中间 它工作得很好 但由于某种原因 当位置太长时 它会抛出错误 代码如下 gsub paste0 as integer loc 1 1 new cols sql Error in gsub p
  • C-如何使用PROGMEM存储和读取char数组

    我有三个字符数组 我不希望 Arduino 将它们存储在SRAM http en wikipedia org wiki Static random access memory 所以我想使用PROGMEM来存储和读入flash http en
  • 类似于 ftrace 打印 CPU 编号

    我想打印当前进程或函数正在执行的 CPU 编号 类似于 ftrace 如下所示 TASK PID CPU TIMESTAMP FUNCTION
  • 我无法获得可样式化的属性数组

    我使用 attrs 声明一个可样式化的视图 并以简单的方式创建了文件 myview attrs xml
  • 类库中 app.config 中的连接字符串

    我正在创建解决方案 里面有三个项目 WCF 服务库项目 数据访问项目 类库 用于托管 WCF 服务的网站 该服务的实现位于项目 1 上 但为了访问数据库 我使用了第二个项目 该项目使用类库项目实现数据访问 这个问题是为了获得数据访问 我需要
  • 将数字列表分为 2 个等和列表的算法

    有一个数字列表 该列表将被分为 2 个大小相等的列表 并且总和相差最小 金额必须打印出来 Example gt gt gt que 2 3 10 5 8 9 7 3 5 2 gt gt gt make teams que 27 27 对于某
  • Actionscript3 到 JavaScript 通信:最佳实践

    那么在更抽象的层面上上一个问题 https stackoverflow com questions 299729 javascript to flash communication 根据我的经验 有 3 种方法可以使用 AS3 从嵌入式 s
  • 通过 less 生成 CSS 组

    是否能够创建这样一个生成CSS组的mixin 我将在下面解释我的意思 fancymixin max prefix content what I don t know how to code fancymixin 10 x 它会生成类似以下内
  • MySQL:SELECT 语句区分大小写吗?

    是MySQLSELECT查询默认区分大小写还是不区分大小写 如果没有 我必须发送什么查询才能执行如下操作 SELECT FROM table WHERE Value iaresavage 事实上 真正的价值Value is IAreSava
  • 使用对象浏览器中未列出的对象属性

    我一直在深入研究 VBA 中对象属性和方法的底层结构 我刚刚读到每个对象的所有属性和方法都列在开发人员框中的 对象浏览器 中 之所以提示我查看此内容 是因为我使用了对象浏览器中未列出的方法 我用了 Sheets Front face Sha
  • clojure core.async 通道如何清理?

    我是第一次了解 Clojure core async 并且正在阅读 Rich Hickey 的精彩演示 http www infoq com presentations clojure core async http www infoq c
  • pyspark 是否会更改优化指令的顺序?

    假设我有以下管道 df orderBy foo limit 10 show 在这里我们可以看到orderBy指令首先出现 因此数据帧的所有行都应在指令之前排序limit指令被执行 我发现自己在想 Spark 是否在管道内进行一些 重组 以提
  • 从 ASP Classic 迁移到 .NET 并缓解痛苦

    我们正在 NET 3 5 中重新设计网站面向客户的部分 到目前为止一切进展顺利 我们使用相同的工作流程和存储过程 在大多数情况下 最大的变化是 UI ORM 从字典到 LINQ 当然还有语言 到目前为止 大多数页面都是微不足道的 但现在我们
  • AlertDialog 样式 - 如何更改标题、消息等的样式(颜色)

    我已经为这件事伤透了脑筋 我需要做的是 改变所有的风格AlertDialog在我的 Android 应用程序中 对话框背景需要是白色的 文本需要是黑色的 我尝试创建很多样式 主题 并从代码 清单等中应用 但就文本颜色而言没有成功AlertD