弹出对话框之Dialog,你一定不知道这些
发布日期:2021-06-30 11:37:30
浏览次数:2
分类:技术文章
本文共 1257 字,大约阅读时间需要 4 分钟。
对于Dialog想必大家应该不陌生, 我们平长遇到的各种对话框就是Dialog了, 这个控件会在我们操作的任何界面弹出一个对话框, 且必须需要我们去操作它才可以关闭, 关于这个Dialog还是有许多地方值得我们去探讨的。
首先, 我们都知道最常用的对话框是这个AlertDialog, 不知道大家在使用这个控件的时候有没有注意到, 这个控件有两个包都包含它, 我们比较常用的是android.app.AlertDialog这个包下的, 但是在android.support.v7.app.AlertDialog 同样也有AlertDialog, 那么这两个有什么区别吗? 这里面是个小知识点,因为现在大家使用的安卓手机系统大多都在2.3以上, 所以不会太在意, 但是如果是在2.3版本以下, 假如我们使用了android.app.AlertDialog包下的AlertDialog, 那么实现的效果是这个样子的:
这样的效果着实有点丑了, 有点落后, 但是如果我们使用v7包下的AlertDialog, 那么就能实现统一的风格了, 是这个样子的:
这个效果还是好看的多。
我们接着说下一个问题, 我们在使用AlertDialog的时候是无法直接通过AlertDialog创建对象的, 这是为什么呢?让我们来看看它的源码:
我们可以看到它的几个构造方法都是protected, 所以我们无法通过AlertDialog直接创建对象, 但是我们总归还是要用的啊, 所以Android系统为我们提供了Builder这个静态内部类来创建AlertDialog对象, 一般是如下格式:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
至于一个简单的弹出对话框的demo想必大家都会,这里不再写了, 大家可能会发现你平常在使用对话框的时候没有使用到creat这个方法去创建, 这是因为你还没有使用到对话框的自定义布局, 当你使用到自定义的布局的时候就必须使用AlertDialog dialog = builder.create();这种方式去创建对话框了。
那我们就来看看如何使用自定义布局, 首先你要自定义一个layout, 就是一个xml文件, 其实说白了就是以前的对话框是弹出系统默认的布局样式, 现在你自定义一个布局, 那么弹出的对话框就是你自定义的一个布局, 我们来看主要代码, 这里我的自定义布局名称为mylayout
这里我们只需要创建一个AlertDialog对象, 然后使用dialog的setView方法为其填充布局, 然后再将这个AlertDialog显示出来就行了, 代码没什么难度, 同样的我们们可以为你自定义布局里面的控件添加一些监听事件去处理相关逻辑,运行如下:
这就是关于对话框的一些知识, 如果你还想详细了解, 那就需要自己再下功夫研究了!
转载地址:https://ithuangqing.blog.csdn.net/article/details/76687565 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月10日 09时34分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C语言中的位域
2019-04-30
C语言中的字节对齐
2019-04-30
大端、小端、网络字节序
2019-04-30
typedef struct与struct的区别
2019-04-30
4K分辨率是什么 你真的知道吗?
2019-04-30
QT VS配置UNICODE问题
2019-04-30
常见几种视频渲染模式介绍
2019-04-30
HTTP Keep-Alive详解
2019-04-30
HTTP协议详解
2019-04-30
分布式系统编程,你到哪一级了?
2019-04-30
centos主机名bogon解决办法
2019-04-30
3- ant 执行 build.xml
2019-04-30
Charles 抓包修改 request 请求数据和响应数据
2019-04-30
Charles 弱网测试
2019-04-30
Mock框架应用(二)-Mock Get请求
2019-04-30
Mock框架应用(三)-Mock Post请求
2019-04-30
Mock框架应用(四)-Mock 重定向请求
2019-04-30
Java数据结构-串及其应用-KMP模式匹配算法
2019-04-30
Jmeter录制脚本
2019-04-30