RecylerView的使用

来源:互联网 发布:无损音乐软件 编辑:程序博客网 时间:2024/05/21 01:57

RecylerView是类似于ListView、GridView的控件,但是它标准化了ViewHolder,而且比ListView、GridView这些控件更加灵活,并且还能够实现他们不能实现的功能,在布局管理器中可以设置多种格式:1、LinearLayoutManager可以使内容线性排列,横向或纵向,下一个参数是布尔类型的参数。2、GridLayoutManager 是网格式布局管理,第二个参数是int类型的数字,你想让布局显示几列就可以设置成为几,第三个参数可以设置横纵向,第四个参数是布尔类型的参数。3、StaggeredGridLayoutManager 是上面那两个控件不能实现的功能,
他是瀑布流,其参数和网格式布局的参数一样,但显示的效果不一样

在MainActivity中的

public class MainActivity extends AppCompatActivity {
RecyclerView rv;
//初始化数据的图片数组
int[] mListIcons = new int[]{};
//初始化数据的标题数组
String[] mListTitle = new String[]{};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到布局中的ReclerView控件
rv = (RecyclerView) findViewById(R.id.rv);
//初始化数据的方法
initData();
}

private void initData() {    //样式,boolean代表展示的方向    //线性布局管理器    //LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);    //网格式布局管理器    GridLayoutManager layoutManager=new GridLayoutManager(this,3,GridLayoutManager.VERTICAL,false);    //瀑布流式布局管理器    //StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);    //关联布局管理器    rv.setLayoutManager(layoutManager);    //设置适配器    rv.setAdapter(new RecyclerView.Adapter() {        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        //加载RecylerView的样式布局                        View view = View.inflate(parent.getContext(), R.layout.item, null);            RecyclerView.ViewHolder viewHolder = new RvViewholder(view);            return viewHolder;        }        @Override        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {            //进行数据设置            RvViewholder myViewholder = (RvViewholder) holder;            //设置图片            myViewholder.itemIv.setImageResource(mListIcons[position]);            //设置标题数据            myViewholder.itemTv.setText(mListTitle[position]);        }//重写得到条目的数量        @Override        public int getItemCount() {            return mListIcons.length;        }

//ViewHolder优化
class RvViewholder extends RecyclerView.ViewHolder {

            public ImageView itemIv;            public TextView itemTv;     /**             * 初始化控件             */            public RvViewholder(View itemView) {                super(itemView);                itemIv = (ImageView) itemView.findViewById(R.id.item_iv);                itemTv = (TextView) itemView.findViewById(R.id.item_tv);            }        }    });}

}
总结
可以看见相比于ListView,RecyclerView非常灵活,但其实这篇文章只是介绍了RecyclerView的基本使用,并没有深入的进行介绍。在使用RecyclerView时候,必须指定一个适配器Adapter和一个布局管理器LayoutManager。适配器继承RecyclerView.Adapter类,具体实现类似ListView的适配器,取决于数据信息以及展示的样式。布局管理器用于确定RecyclerView中Item的展示方式以及决定何时用Item,避免重复创建。

原创粉丝点击