字节跳动中级Android面经:RecyclerView源码级分析、事件分发那些坑

发布时间:2026/7/26 6:58:17

字节跳动中级Android面经:RecyclerView源码级分析、事件分发那些坑 上一篇初级岗面经发出去之后,好几个读者私信说"初级那些我都会,但面中级岗就是过不了"。其实差距没你想的大——初级考"你知道什么",中级考"你理解到什么程度"。同样问RecyclerView,初级问四级缓存,中级让你讲Recycler源码调用链。今天这6道题每道都是面试被追问到哑口无言的真实场景,答案全部经过源码验证。Q1:RecyclerView滑出再滑回来,数据怎么复用的?讲源码级流程光说"四级缓存"不够,字节面试官要你讲代码调用链。item滑出屏幕时,LayoutManager调detachAndScrapAttachedViews把ViewHolder分出去。position有效的进CachedViews(容量2),失效的进RecycledViewPool。滑回来需要新item时,调tryGetViewHolderForPositionByDeadline,按顺序查:ChangedScrap → AttachedScrap → CachedViews(position精确匹配不用rebind) → ViewCacheExtension → RecycledViewPool(按viewType取,要rebind)。五级缓存都没命中才走onCreateViewHolder + onBindViewHolder。追问:setHasStableIds(true)有什么用?开启后根据id而不是position匹配,数据刷新时复用更精确,动画也更流畅。代价是每次都要保证id唯一。Q2:ViewPager2+Fragment懒加载怎么实现?ViewPager时代靠setUserVisibleH

相关新闻