ListView:只能在垂直方向滑动。
RecyclerView:支持水平方向滑动,垂直方向滑动,多行多列瀑布流的方式等。
ListView:有几个默认的Adapter,分别是ArrayAdapter、CursorAdapter和SimpleCursorAdapter。RecyclerView: Adapter需要自己实现。
ListView:拥有子ltem的监听函数:AdapterView.OnltemClickListener。
RecyclerView:需要自己实现接口,来实现子ltem的点击事件,虽然比较麻烦,但是扩展性好。
ListView:并不强制使用ViewHolder,如果要使用,则需要自己定义,如果不使用,ListView每次
getView()的时候都需要去findViewByld,会造成性能下降,滑动卡顿等,所以推荐使ViewHolder。
RecyclerView:必须使用ViewHolder。
ListView:两级缓存。
RecyclerView:四级缓存。
ListView两级缓存
1.mActiveViews用于屏幕内ltemView快速重用
2.mScrapViews用于缓存离开屏幕的ItemView
RecyclerView四级缓存
1. mChangeScrap与mAttachedScrap用于屏幕内ltemView快速重用
2.mCachedViews默认上限为2,即缓存屏幕外2个ltemView
3. mViewCacheExtension用户自定义,一般不使用
4.RecycledViewPool默认上限为5
缓存对象不同,RecyclerView缓存的是ViewHolder,ListView缓存的是View。