谷歌工程师的小彩蛋

u=2837317564,1737015805&fm=253&fmt=auto&app=138&f=JPEG.jpg

彩蛋

今天看源码,无意间看到了一个谷歌工程师留下的小彩蛋。

LayoutInflater的tryCreateView方法

如果XML里定义的标签 name = TAG_1995,直接就开派对了???

image.png

具体就是new了一个BlinkLayout,这个闪烁布局又是干啥的呢?

1.在onAttachedToWindow(页面可见)的时候,用handler发了一个延迟500ms的消息。
接收handler消息的地方,又死循环发送handler消息,然后刷新页面。

image.png

2.在onDetachedFromWindow(页面不可见)的时候,移除这个注册的handler,结束死循环。

image.png

3.在handleMessage处理消息的时候,将mBlinkState这个boolean值,取反mBlinkState = !mBlinkState。然后在刷新页面dispatchDraw的时候,判断mBlinkState是否绘制页面。
所以就形成了闪烁。500ms有view,500ms没有view

image.png

image.png

彩蛋效果

image.png

1644390406511.gif

Guess you like

Origin juejin.im/post/7062603177958473759