首页 > 学院 > 开发设计 > 正文

RecyclerView的升级使用--------(二)

2019-11-06 09:46:23
字体:
来源:转载
供稿:网友

      写过基础的RecyclerView之后也是不明白为什么那么多人喜欢用RecyclerView,那么复杂,现在终于知道啦。

RecycleView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。该控件用于在有限的窗口中展示大量数据集,它被作为ListView和GridView控件的继承者。

那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构,提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator实现令人瞠目的效果

你想要控制其显示的方式,请通过布局管理器LayoutManager

· 你想要控制Item间的间隔(可绘制),请通过ItemDecoration

· 你想要控制Item增删的动画,请通过ItemAnimator

· 你想要控制其显示的方式,请通过布局管理器LayoutManager

         你想要控制点击,长按事件,请自己写

   下面来写一下RecyclerView的Item间的间隔(divier)的绘制,以及通过布局管理器LayoutManager来控制其显示的方式。

        并且自己来写Item的点击事件,首先点击事件是写在Adapter里面的,不多说,上图。

       

interface OnItemClickListener{    void Click(View v ,int pos , String str);}
PRivate OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener){    this.listener = listener;}

准备工作就到这里了,然后在需要点击监听的地方调用方法就Ok了,在这里我们需要在item点击调用,so

public MyViewHolder(View itemView) {    super(itemView);    textView = (TextView) itemView.findViewById(R.id.id_demo_text);    itemView.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (listener != null){                listener.Click(v,getLayoutPosition(),mDatas.get(getLayoutPosition()));            }        }    });}我们再次回到我们的activity代码里面

adapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {    @Override    public void Click(View v, int pos, String str) {        Toast.makeText(MainActivity.this,"哈哈哈"+mDatas.get(pos),Toast.LENGTH_SHORT).show();    }});这样,我们的item监听就算完成了,运行起来发现界面非常的丑,没有分割线divier,so

recycleView.addItemDecoration(new DividerItemDecoration(this,4));这个用来给我们的RecyclerView添加分割线的

recycleView.setLayoutManager(new LinearLayoutManager(this));这个是RecyclerView的布局管理器,再次就不多试了,各位看官有需要自己尝试。


上一篇:Gradle Tips

下一篇:设计模式-外观模式

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表