You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android自定义AlertDialog设置标题与消息后不显示问题

AlertDialog标题和消息不显示问题修复方案

你的代码逻辑本身没有语法错误,该问题由以下几个常见原因导致,对应解决方案如下:

问题原因

  • 你自定义的R.style.AlertDialogTheme中配置了<item name="android:windowNoTitle">true</item>,该属性会强制隐藏AlertDialog的默认标题栏,导致setTitle、setMessage设置的内容无法渲染。
  • 主题未明确指定标题、消息的文字样式,出现文字颜色与对话框背景色重合、文字尺寸为0等异常,视觉上表现为内容未显示。
  • 部分MaterialComponents主题的AlertDialog默认样式与自定义View存在适配冲突,自带的标题区被你传入的自定义布局挤压为不可见状态。

解决方案

方案1:修正AlertDialog自定义主题

检查项目中res/values/styles.xml或res/values/themes.xml里的AlertDialogTheme配置,移除windowNoTitle=true配置,同时明确指定文字样式即可,示例配置如下:

<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
    <!-- 务必删除该行配置:<item name="android:windowNoTitle">true</item> -->
    <item name="android:windowBackground">@android:color/white</item>
    <!-- 配置标题文字样式 -->
    <item name="android:textColorPrimary">@android:color/black</item>
    <item name="android:textSize">18sp</item>
    <!-- 配置消息文字样式 -->
    <item name="android:textColorSecondary">@android:color/darker_gray</item>
    <item name="android:textSizeSecondary">14sp</item>
</style>

方案2:自定义布局内置标题消息(兼容性最优)

如果不想修改全局主题配置,可以直接在你的自定义布局R.layout.dialog_car_year中新增两个TextView,分别用来展示标题Ano和提示语Escolha o ano do veículo,原有代码中删除setTitle、setMessage调用即可。该方案完全自主控制所有控件样式,不会受系统主题、版本差异影响。

问题运行截图:
运行截图

内容的提问来源于stack exchange,提问作者Leonardo Sibela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:39:01