RecycleView使用

来源:互联网 发布:人工智能从入门到精通 编辑:程序博客网 时间:2024/06/06 03:10
1.它需要在xml布局文件中定义


2.它需要显示的指定ViewHolder它要继承RecyclerView.ViewHolder
  在它的里面你要把所有的控件查找好并并提供方法来获取这些控件对象(最好就让它为public 直接可以获取字段)


3.创建一个Adapter它需要继承RecyclerView.Adapter<T> T就是你定义的ViewHolder
     你需要复写onCreateViewHolder(它返回为ViewHolder(也可以是你自定义的ViewHolder对象))
      它里面的操作就是利用inflater加载xml中布局生成View对象再传入到你的ViewHolder中


     在复写一个onBindView它是用于设置数据的


     getItemCount就不用多说了它决定你显示最终最大个数


4.在Activity中使用:
    先获取RecycleView对象,在调用它的setAdapter方法
    注意它调用setAdapter还是无法让数据显示出来。这时还要调用setLayoutManager
    这个方法的常用参数有3中:
    1》new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)//垂直滑动
    2》new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)//水平滑动
    3》new GridLayoutManager(this,4)//grid布局
    4》new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL)//瀑布流布局


  设置这些就可以显示啦


注意:
   RecycleView上面有些方法有点不好用:
   recyclerView.setItemAnimator(new DefaultItemAnimator());//设置删去的默认动画效果
   adapter.notifyItemRemoved(position);//只有它们配合使用才有效果
那问题来了?
   你打印出它的onBindView方法可知,你进行删除时它只会调用新显示的数据。旧的数据没有更新调用。
   如果你是给每个Item上的View设置点击事件删去那么你可能会发现它删的不是你点的View。原因就是
  它没有将页面的数据刷新。效率高必然会有些问题给我们。
0 0
原创粉丝点击