解决RecyclerView 出现ClassCastException

解决RecyclerView 出现ClassCastException

首先需要排除的时候 确实不是代码的逻辑上的问题。

出现场景在于多种视图的判断既混合的布局加载。(ViewType >=2

会出现关于复用布局的类型转换异常

当然这种场景还有前提是快速滑动且数据量达到一定的层次的时候。当然发现在快速滑动过程中,Item的状态又发生了更新,然后你快速滑动的时候,直接Crash了

当时的我是一脸懵逼的。

后来baidu 和google之后,涉及到一些关于,小的细节性的优化的问题,

把所有的条件判断小于3的都用三目运算 这个主要是针对那个RecyclerView中的

getItemViewType(int position)的判断方法。

onCreateViewHolder 和onBindViewHolder的条件判断 如果条件不多的情况下 用if-else(3个左右)判断最好。但是多余一定时候 还是switch 更利于性能优化。但其实switch 相对而言最大的弊端应该是判断的类型有限吧。不如if-else灵活

if else是一条比较指令,需要遍历条件分支直到命中条件

swtich是一张地址表,而只需访问对应索引号的表项就能定位分支,所以switch有点以空间换时间的意思。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容