Android Dialog 源码研究

Android Dialog 源码研究

在阅读Dialog源代码之前,我给自己提出了4个问题,带着这4个问题的疑问,我才开始看源码,这样的好处能让阅读中有了侧重点,往往能更快的理解某些代码的意图,这也正是为什么总说提出问题本身,要比解决问题困难

我下面要思考的4个问题是:

  1. Dialog到底是什么东西?
  2. Dialog到底是如何被显示到屏幕上?
  3. Dialog的构建,有哪些类参与,都有什么作用?
  4. Dialog的主要API,是如何让Dialog发生变化的?

首先,我们先得搞清楚Dialog的继承体系,整体把握下Dialog的设计结构。下图即为Dialog的继承体系树结构:

这里写图片描述

对Dialog有了整体认识之后,我们带着上面4个问题来阅读源码,并从中找到问题的答案。当把所有问题都解决掉之后,Dialog的源码也基本上都看懂了,对之后的自定义Dialog有很大帮助。

Dialog本质上是什么?

先看Dialog类的源码的构造函数,发现不同的构造内部最后都会调用3个参数的构造Dialog(@NonNull Context context, @StyleRes int themeResId, boolean createContextThemeWrapper)

我们来看下,该构造中形参的作用,第一个参数上下文,就不用解释啦。

1.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值