RecyclerView(控件)

来源:互联网 发布:找网络水军公司 编辑:程序博客网 时间:2024/05/23 00:41

1.在build.gradle配置文件中 引入 

compile 'com.android.support:recyclerview-v7:23.2.1'  即可食用RecyclerView组件


2.创建一个RecyclerView的适配器

* public class MyAdapter extends RecyclerView.Adapter<MyViewHolder>
* 创建一个ViewHolder类来支持RecyclerViewAdapter的泛型支持
* 在RecyclerView中重点方法
onBindViewHolder() 绑定一个ViewHolder
onCreateViewHolder() 创建一个ViewHolder
注:传统的BaseAdapter会在getView() 中去创建ViewHolder  和对应的View去进行赋值, 而在RecyclerView.Adapter中
       将这个过程分为了两步,由这两个方法实现创建ViewHolder和给View赋值 , 可见谷歌已经开始强制开发者使用ViewHolDer模式了。
3.RecyclerView中关键方法实现
* 
// 创建ViewHolder的方法具体实现
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = mInflater.inflate(R.layout.recycler_item,parent,false);MyViewHolder viewHolder = new MyViewHolder(view);return viewHolder;}
//绑定数据源方法专注数据加载
public void onBindViewHolder(MyViewHolder holder, int position) {holder.tv.setText(datas.get(position));}
//内部类ViewHolder
class MyViewHolder extends RecyclerView.ViewHolder{TextView tv;    //进行初始化public MyViewHolder(View itemView) {        super(itemView);        tv = (TextView) itemView.findViewById(R.id.id_tv);    }}
4.RecyclerView 的一些属性
* 设置RecyclerView的显示 类型 
通过加载适配器和数据之后,如果想显示成ListView的样子就必须进行一下操作
创建一个线性布局管理者,通过初始化构造时,构造为纵向布局,在将布局管理者set 即可完成
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false);mRecyclerView.setLayoutManager(linearLayoutManager);
* 设置RecyclerView的分割线背景

//设置RecyclerView的Item的分割线
mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL_LIST));


5. 通过setLayoutManager来管理布局的显示,达到RecyclerView的真正强大之处!
//ListView显示模式
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//GridView显示模式mRecyclerView.setLayoutManager(new GridLayoutManager(this,3));

//水平的GridView显示模式mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(5,StaggeredGridLayoutManager.HORIZONTAL));
//瀑布流式显示模式
mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));
6.总结
* 通过LayoutManager 来实现 ListView GridView ,横向的ListView,GridView , 瀑布流的布局
* 通过ItemDecoration  来实现分隔线  实现的原理和如何定制
* ItemAnimator动画的使用
* 手动在Adapter中提供 Item click  和 Item OnClick 回调

0 0
原创粉丝点击