问题记录-RecyclerView加载上千条数据的时候ANR

       项目里有个普通的详情页面,有时候跳转到该页面后直接卡死,手指点几下屏幕后,就出现ANR,或者是容推送通知里跳转该详情页面,会出现黑屏现象。想了想,虽然我的列表数据没有分页,有些详情的item数据会有一千多条,但item绘制超出一屏后item就会被复用的,理论上没问题。我用命令adb shell data/anr导出整个anr文件夹,对应产生anr的时间,打开traces.txt文件,发现我们的adapter里onCreateViewHolder()方法,意思是该方法被频繁调用。检查了下我们的布局文件,发现在RecyclerView的外层竟然嵌套了一层NestScrollView,加了他以后,他会把子view里数据全部绘制,然后一起加载,这就导致了onCreateViewHolder()被调用多次,去掉外层的ScrollView,问题解决。

你可能感兴趣的:(问题记录-RecyclerView加载上千条数据的时候ANR)