AlertDialog的自定义其实网上很多了,但是有一个坑却很少见人提及。先看下Java代码部分:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.DialogTheme);
builder.setView(R.layout.dialog_layout);
builder.create().show();

有两处地方需要注意下:

  • R.style.DialogTheme 这里是重点,下面我会放上代码;
  • R.layout.dialog_layout这里就是你自定义的Dialog的视图文件了,不需要多说;

R.style.DialogTheme代码:

<style name="DialogTheme" parent="AlertDialog.AppCompat"><!--去掉AlertDialog的背景--><item name="android:windowBackground">@android:color/transparent</item><!--浮现在activity之上,如果不设置该属性,那么对话框的宽度就会变宽--><item name="android:windowIsFloating">true</item>
</style>

Dialog主题中第一行的代码,是设置透明背景,主要是为了实现“网易云发现新版本”的那种Dialog效果,如下所示:

第二行的代码设置Dialog浮动在Activity上是为了解决对话框宽度会占据整个屏幕的问题,虽然可以在布局中设置margin来使对话框宽度距离屏幕边缘有个距离,但是对于强迫症患者肯定不喜欢这个样子的,比如我。所以这句代码就是解决方法。

谢谢观看

该项目Sunshine已放在GitHub,这是其中一篇开发记录,更多开发记录文章请点击该项目查看。

AlertDialog自定义相关推荐

  1. 使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法

    使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法 在很多情况下,Android自带对话框的样式满足不了我们项目的需求,这时候我们可以采用为对话框设置自定义布局.如果直接用Dia ...

  2. java自定义对话框_Flutter AlertDialog自定义对话框实现示例(确认或取消)

    Flutter AlertDialog对话框在移动开发中也是非常常见的,想要实现一个确认或取消的对话框,只需要在一个flutter函数中实现showDialog方法即可,下面来看一下Flutter对话 ...

  3. 【转】Android AlertDialog自定义布局

    原文网址:https://blog.csdn.net/u010694658/article/details/53022294 由于开发中经常使用弹框,然而系统自带的弹框太局限,也不太美观,经常不能满足 ...

  4. alertdialog 自定义样式回调选手_日志MIUI 10 9.8.7 内测更新资讯 小米8自定义水印...

    「第60期」 - 不知不觉来到了第60期的「日志」 ... - 目前在试运行地把酷安@Yuming_Zh 「830」栏目资讯由周一到周五推送升级为每天推送.为打造一个读者互相交流的新栏目.期待各位的神 ...

  5. Android之自定义AlertDialog无法监听控件

    参考:http://www.cnblogs.com/511mr/archive/2011/10/21/2220253.html 要做一个自定义的弹出框,以前都是用一个Activity来实现,总觉得不是 ...

  6. Android--万能自定义弹窗

    使用的是AlertDialog 自定义弹窗呢,就是一个界面放在了AlertDialog容器弹框上. 第一步:写好你的界面 (在layout下创建system_admin_psw_alert_dialo ...

  7. Android的警示对话框AlertDialog简单使用实例(附Demo)

    目录 AlertDialog默认样式 单选样式的AlertDialog: AlertDialog多选样式: AlertDialog自定义样式: 自定义Dialog: Demo地址:https://gi ...

  8. AndroidDialog

    android中对话框是非常常用的控件之一, google也提供了各种自定义对话框. 我觉得好多人都掌握不全, 所以我全面的总结下.; 对话框的几种实现方式: Activity Popwindow D ...

  9. Android中的Dialog

    文章目录 1 AlertDialog 1.1 普通对话框的创建 2 自定义对话框 2.1 自定义对话框的创建步骤 3 PopupWindow 3.1 PopupWindow介绍 4 ArrayAdap ...

最新文章

  1. android 隐藏底部虚拟按键
  2. MySQL数据库分页查询limit
  3. SAP MM T-code MD04的使用,是有前提的!
  4. 随堂小测app冲刺(六)
  5. boost::hana::not_equal用法的测试程序
  6. TypeScript 类
  7. 计算机相关专业及本科课程整理
  8. const修饰指针的情况分析
  9. 安装天文基本包:kapteyn和pyslalib
  10. 简单链表实现增删改查(内部类+递归)
  11. C# WinAPI 编程详解(一)
  12. C#显示和隐藏 Excel 工作表及工作表中的行与列
  13. 解决TypeError: conv2d() received an invalid combination of arguments
  14. Windows 窗口层次关系
  15. 微软:今天起加速推广Windows 11,让更多设备免费升级
  16. 南京邮电大学网络攻防训练平台逆向第三题PY交易
  17. 龙门浩职高计算机学校,重庆市龙门浩职业中学校|龙门浩职高是公办还是民办院校/文凭怎么样/是什么性质...
  18. PTA习题【python】 6-8 jmu-python-发牌
  19. 2020年广东省中高级工程师职称评定条件要求和通知
  20. Leetcode0953. 验证外星语词典(simple)

热门文章

  1. Python(自学笔记1)
  2. mysql 亿级别秒查_mysql亿级数据查询方法说明
  3. 校验注解-- @NotNull、@NotEmpty、@NotBlank
  4. 数据库课设作业《公寓管理系统》
  5. 1月15日服务器例行维护公告,传奇世界网页版1月15日维护更新公告
  6. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于的小区物业管理系统4c9w9
  7. 服务器企业版(1020)发行注记
  8. 计算机d盘被拒绝访问了怎么办,D盘拒绝访问解决办法_电脑故障修复_电脑知识学习_培训之家...
  9. 功夫不负有心人,终于解决TeamViewer在局域网中远程桌面控制
  10. petalinux 编译启动文件命令详解