采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,这个AsyncLayoutLayout可以用在实际项目中吗?感觉不同机型上会有兼容性问题
你说:AsyncLayoutInflater不能适配appcompatactivity之类的这个问题,你更应该去翻阅源码去寻求解决方案。
老师已经提供了解决思路:就是copy一份这个异步加载布局类,修改其源码。
老师只抛出解决方案的思路,而没有提供源码,这是让我们去思索如何去解决,而不是一味地照葫芦画瓢。
官方提供的这个异步加载布局类,无非就是创建了LayoutInflater,然后开启子线程加载布局而已。 我想,你担忧的最大的问题是,这个异步加载布局类里面的LayoutInfalter没有设置Factory2,实现Compat XXXView的兼容问题。
1.阅读源码,我们可以得到:通过Activity拿到的inflater都是同一个,都是mBase里面第一次初始化的LayoutInfalter,是通过一次调用context.getSystemSerivice方法初始化的。
2.在AppcompatActivity.onCreate() ,通过context.getSystemSerivice,拿到mBase的inflater,如果factory2为空,设置了factory2。
3. 页面布局用的都是该inflater。
4.所以我们只需要,copy一份这个异步加载布局类,init方法中给内部的inflater设置该factory2。
具体的代码我就不贴出来了,毕竟老师这里是想让我们去阅读源码解决的。
太赞了!理解的非常到位
同学你好,可以用的,为什么感觉会有兼容性问题呢?这是support提供的类
就是不能适配appcompatactivity之类的
登录后可查看更多问答,登录/注册
由表及里学到国内Top团队对性能问题的体系化解决方案
1.4k 38
1.2k 12
1.4k 9
1.3k 9
1.1k 9