相同点:都可以实现垂直方向的滚动列表效果;都需要使用适配器(Adapter)
不同点:ListView只能实现垂直滚动列表,但RecyclerView还可以实现水平、多列、跨列等复杂的滚动列表;RecyclerView不但需要Adapter,还必须有LayoutManager,用法更复杂一些。
总结:ListView能做到的,RecyclerView都能做到,反之则不行。RecyclerView用法比ListView复杂。
一般用法:
ListView用法
ListView listView = (ListView) findViewById(R.id.list_view);listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));
RecyclerView用法
recyclerView = findView(R.id.id_recyclerview);
//设置布局管理器
recyclerView.setLayoutManager(layout);
//设置adapter
recyclerView.setAdapter(adapter) ;
//设置Item增加、移除动画
recyclerView.setItemAnimator(new DefaultItemAnimator());
//添加分割线
recyclerView.addItemDecoration(newDividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL_LIST));