Skip to content
阅读进度

常见 ViewGroup 与 RecyclerView 怎样选择? ​

返回 View 与显示链路 目录

标准回答 ​

FrameLayout 适合简单叠放;LinearLayout 适合单方向线性排列;ConstraintLayout 适合用约束表达较复杂的相对关系;RecyclerView 适合可滚动、可复用的集合。选型看结构和实际测量成本,不按“某容器永远最快”下结论。

机制解释 ​

RecyclerView 复用 ViewHolder 减少重复创建,但 onBindViewHolder 仍然可能很重。图片缩放和解码、列表差异计算、局部刷新、避免绑定时同步查询,都影响流畅性。DiffUtil 要正确区分“同一条数据”和“内容相同”。

延伸追问 ​

快速滑动时图片错位为什么?异步请求返回后,ViewHolder 可能已经绑定其他条目。应取消旧请求或验证当前绑定标识,并在绑定时清理旧展示状态。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。