彩蛋
今天看源码,无意间看到了一个谷歌工程师留下的小彩蛋。
LayoutInflater的tryCreateView方法
如果XML里定义的标签 name = TAG_1995,直接就开派对了???
具体就是new了一个BlinkLayout,这个闪烁布局又是干啥的呢?
1.在onAttachedToWindow(页面可见)的时候,用handler发了一个延迟500ms的消息。
接收handler消息的地方,又死循环发送handler消息,然后刷新页面。
2.在onDetachedFromWindow(页面不可见)的时候,移除这个注册的handler,结束死循环。
3.在handleMessage处理消息的时候,将mBlinkState这个boolean值,取反mBlinkState = !mBlinkState。然后在刷新页面dispatchDraw的时候,判断mBlinkState是否绘制页面。
所以就形成了闪烁。500ms有view,500ms没有view