外观
常见 ViewGroup 与 RecyclerView 怎样选择?
标准回答
FrameLayout 适合简单叠放;LinearLayout 适合单方向线性排列;ConstraintLayout 适合用约束表达较复杂的相对关系;RecyclerView 适合可滚动、可复用的集合。选型看结构和实际测量成本,不按“某容器永远最快”下结论。
机制解释
RecyclerView 复用 ViewHolder 减少重复创建,但 onBindViewHolder 仍然可能很重。图片缩放和解码、列表差异计算、局部刷新、避免绑定时同步查询,都影响流畅性。DiffUtil 要正确区分“同一条数据”和“内容相同”。
延伸追问
快速滑动时图片错位为什么?异步请求返回后,ViewHolder 可能已经绑定其他条目。应取消旧请求或验证当前绑定标识,并在绑定时清理旧展示状态。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q15