Dialog显示流程 源码笔记
来源:互联网 发布:淘宝模特招聘兼职 编辑:程序博客网 时间:2024/05/17 07:08
使用的时候一般都是使用Dialog类自带的Builder, 比如AlertDialog.Builder来进行buildDialog的:
- Builder的create函数其实也是new了一个AlertDialog, 并且根据之前build过程中给的参数来对dialog进行设置
- 显示用的show函数会先create出dialog, 然后还是Dialog自己实现的show()函数.
Dialog的show函数:
- 比较关键的成员变量: mDecor/mWindow/mWindowManager
- 上面后2个变量都是在dialog构造时被赋值的:
- mWindowManager直接 getSystemService(Context.WINDOW_SERVICE)
- mWindow是 PolicyManager.makeNewWindow(mContext), 这个函数其实最后在手机上是会new一个PhoneWindow对象的.
- mDecor则是在show的时候直接从mWindow通过getDecorView()得到的.
- 注意的是在build时调用的setContentView(int layoutResID)/(View view)会调到mWindow的setContentView(….), 这时就已经改变了mWindow的decorView显示的内容了
- 通过mWindow.getAttributes()得到一份属于该window对象的WindowManager.LayoutParams.
- 下一步则是new一个新的WindowManager.LayoutParams(), 并copy之前的获取的WindowManager.LayoutParams, 然后将此mDecorView结合layoutParam直接add到mWindowManager中, mWindowManager.addView(mDecor, l), 没,貌似mWindow在这里的作用只是一个模拟沙盒?
- 最后还会根据之前的setOnShowListener中设置的mShowMessage来调用sendShowMessage()将Message发往target**Message.obtain(mShowMessage).sendToTarget()**实现callback.
0 0
- Dialog显示流程 源码笔记
- Dialog创建流程源码解析
- dialog源码解析笔记
- Dialog显示和消失流程分析
- Android笔记:Dialog显示图片
- Android源码解析(十九)-->Dialog加载绘制流程
- Android源码解析(二十)-->Dialog取消绘制流程
- Android源码基础解析之Dialog加载绘制流程
- Android源码基础解析之Dialog取消绘制流程
- Dialog显示
- dialog显示
- settings源码中显示所有进程流程
- Fresco源码赏析 之 图片显示流程
- Fragment之添加显示流程源码分析
- Android InputMethod 源码分析,显示输入法流程
- 笔记48--ListView点击item,显示Dialog,选择Dialog,更改item的值
- Android MotionEvent传递流程 源码笔记
- mysql 源码学习笔记:mysqld启动流程
- UISlider
- 陈怡暖:(午评)美制造业数据跳水,贵金属原油绝地反击
- java获取显示器屏幕大小
- 简明 Vim 练级攻略
- 重视SAT数学考试是有理由的
- Dialog显示流程 源码笔记
- C++ 11.2 accumulate、find_first_of 函数
- TFTP与FTP区别
- java网络编程之socket网络编程示例(服务器端/客户端)
- DAS、NAS、SAN、iSCSI 存储方案概述
- [走火入魔失眠夜]浅谈管理软件信息安全,用户名、密码的加密解密【附C#配套加密解密源码】
- 服务器设计、线程、代理线程的学习
- RESTful API 设计指南
- TCP通信流程解析