自定义View面试题

1. invalidate() 和 postInvalicate() 区别?


  • 二者都调用了invalidate()的代码,但是 postInvalicate() 通过 handler切换到了 UI线程,也就意味着我们如果想在子线程中更新UI,可以调用 postInvalicate();

2. 实现赞赏用户头像排列效果?


图片.png

自己写一个ViewGroup,往ViewGroup中添加CircleImageView,然后重写 onLayout()方法去摆放,不要从后台获取到图片url路径后去drawBitmap,这样子是不太好的,我们推崇的是在里边只调用 onLayout()摆放,更多的操作放在外边来做;

3. View的绘制流程是从Activity的哪个生命周期方法开始执行的?


onResume()之后开始

4. 请简述下边三种实例化View的区别,创建RecyclerView 的 item 下边哪种方式最好,还是都可以?


图片.png

第1、2最终都是执行第3个方法,所以只需要分析第3个方法就ok

第3个参数如果是true:表示把item-recycler布局文件添加到parent父布局容器中;
false表示:没有把 item_recycler布局文件添加到 parent父布局容器中;
但是如果第三个参数是false,比如父布局容器是FrameLayout(fl),然后 调用 fl.addView(item_recycler);效果就和 true一样,都表示把 item_recycler添加到 父布局容器中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容