异步 LayoutInflater

LayoutInflater

LayoutInflater 这个类大家应该都很熟悉,经常跟它打交道。我们经常用它来解析 layout xml的文件,返回一个View。但是不知道大家有没有注意,这个操作是有点耗时的,特别是复杂的布局的时候,需要解析xml,然后生成那么多控件,可想而知。

AsyncLayoutInflater

AsyncLayoutInflater 这个类是 Support 包里面带的,我们可以直接拿来使用。
它提供了一个 inflate 的方法, 基本跟 LayoutInflater 一样,但是最后多了一个参数,就是一个回调参数,inflate 完布局 就能在这个地方接受到回调。注意这个方法是要在 UI 线程调用的,源码用了 @UiThread 标记。
AsyncLayoutInflater 的代码也不多,还不到两百行,里面有 LayoutInflater 变量,和一个队列线程,还有一个 Handler 负责 inflate 消息的处理,所以 AsyncLayoutInflater 只是封装装饰。有兴趣可以去看源码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容