1、
ListView:并不强制使用ViewHolder,如果要使用,则需要自己定义,如果不使用,ListView每次getView()的时候都需要去findViewById,会造成性能下降,滑动卡顿等,所以推荐使用ViewHolder。
RecyclerView:必须使用ViewHolder。
2、
ListView:只能在垂直方向滑动。
RecyclerView:支持水平方向滑动,垂直方向滑动,多行多列瀑布流的方式等。
3、
ListView:有几个默认的Adapter,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。
RecyclerView:Adapter需要自己实现。
4、
ListView:拥有子Item的监听函数:AdapterView.OnItemClickListener。
RecyclerView:需要自己实现接口,来实现子Item的点击事件,虽然比较麻烦,但是扩展性好。
5、
两者均会复用item,但RecyclerView提供了额外的缓存机制,大体分五级缓存,ListView无缓存机制。
两者各自独有的特性:
ListView:可以在布局文件里通过以下代码直接添加分割行。
android:divider="@android:color/transparent"
android:dividerHeight="5dp"
RecyclerView:RecyclerView.ItemAnimator被提供用于在RecyclerView添加、删除或移动item时处理动画效果。
本文对ListView和RecyclerView进行了对比。ListView不强制用ViewHolder,只能垂直滑动,有默认Adapter,有子Item监听函数,无缓存机制,可在布局文件添加分割行;RecyclerView必须用ViewHolder,支持多方式滑动,Adapter需自己实现,子Item点击事件扩展性好,有五级缓存机制,有处理动画效果的ItemAnimator。

771

被折叠的 条评论
为什么被折叠?



