美文网首页
解决RecyclerView 出现ClassCastExcep

解决RecyclerView 出现ClassCastExcep

作者: 远行的猿 | 来源:发表于2017-03-21 09:46 被阅读0次

解决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有点以空间换时间的意思。

相关文章

网友评论

      本文标题: 解决RecyclerView 出现ClassCastExcep

      本文链接:https://www.haomeiwen.com/subject/ozmwnttx.html