Android Dialog 源码研究
在阅读Dialog源代码之前,我给自己提出了4个问题,带着这4个问题的疑问,我才开始看源码,这样的好处能让阅读中有了侧重点,往往能更快的理解某些代码的意图,这也正是为什么总说提出问题本身,要比解决问题困难。
我下面要思考的4个问题是:
- Dialog到底是什么东西?
- Dialog到底是如何被显示到屏幕上?
- Dialog的构建,有哪些类参与,都有什么作用?
- Dialog的主要API,是如何让Dialog发生变化的?
首先,我们先得搞清楚Dialog的继承体系,整体把握下Dialog的设计结构。下图即为Dialog的继承体系树结构:
对Dialog有了整体认识之后,我们带着上面4个问题来阅读源码,并从中找到问题的答案。当把所有问题都解决掉之后,Dialog的源码也基本上都看懂了,对之后的自定义Dialog有很大帮助。
Dialog本质上是什么?
先看Dialog类的源码的构造函数,发现不同的

本文探讨了Dialog的本质,揭示其是一个Window,并详细解析了Dialog如何显示和移除的源码过程,包括构造函数中themeResId的作用,以及show()和dismiss()方法的工作原理,帮助理解Dialog的底层实现。
最低0.47元/天 解锁文章
3971

被折叠的 条评论
为什么被折叠?



