RecyclerView使用解析

0.RecyclerView的特性

1.LayoutManager类

2.Adapter类

3.ViewHolder类

4.配置不同的LayoutManager

5.为item配置点击事件

6.RecyclerView中插入和删除数据

7.Koltin写法

.
.
.

0.RecyclerView的特性:

  • 灵活可以配置
  • 可以自定义并且可以重复使用的Item
  • 高度解耦
    .
    .

1.LayoutManager类:
LayoutManager类是一个抽象类,安卓给我们提供了三个它的实现类供我们使用:

1.1LinearLayoutManager: 线性布局管理器。
LinearLayoutManager给我们提供了一些API让我们可以对展示效果进行更丰富的操作。
在这里插入图片描述

1.2GridLayoutManager: 网格布局管理器
我们可以在它的构造方法中传入它的列数。
在这里插入图片描述

1.3StaggeredGridLayoutManager: 瀑布流布局管理器
宽度相同高度不同的ItemView。
在这里插入图片描述

确定RecyclerView的样式,是线性的,网格的还是瀑布流的。

2.Adapter类
用来处理视图和数据之间的关系,一般情况下和ViewHolder搭配使用。
每个Adapter都必须继承自RecyclerView.Adapter.并实现三个方法:
**onCreateViewHolder:**创建ViewHolder并返回

    //创建并返回泛型中要求的ViewHolder
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.itemlayout,parent,false));
    }
 

onBindViewHold: 将数据放入ViewHolder中

 //通过ViewHolder来绑定数据
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
    //给ViewHolder持有的控件实例初始化
        holder.mIv.setImageResource(getIcon(position));
        holder.mTv.setText(dataSource.get(position));

//为瀑布流布局设置动态高度
        if (recyclerView.getLayoutManager().getClass() == StaggeredGridLayoutManager.class)
        {
            //如果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值