菜品列表刷新闪退修复记录

记录日期:2026-08-31

项目仓库:/Users/liang/AndroidStudioProjects/CusumptionMachine

实施分支:fix-menu-dish-list-refresh-crash

问题原因

主页面下拉刷新时会先清空 mGetDishList,而 DishListAdapter 与页面共同持有该列表。RecyclerView 中仍存在旧的 ViewHolder 和预取位置时,数据数量已经变为 0,可能触发 Invalid view holder adapter position;用户点击尚未消失的旧菜品时,也可能使用旧位置访问空列表并触发 IndexOutOfBoundsException。网络响应越慢,界面与数据不同步的时间窗口越长,因此更容易触发,但网络慢不是根本原因。

修复方案

影响文件

自动验证

真机验收要求

交付边界