RecycleView的简单使用1:RecycleView的配置和初使用

RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。RecyclerView可用于展现大量的数据,可用性更高。RecyclerView标准化了ViewHolder,可以轻松实现ListView实现不了的样式和功能,通过布局管理器LayoutManager可控制Item的布局方式,通过设置Item操作动画自定义Item添加和删除的动画,通过设置Item之间的间隔样式,自定义间隔。

1.RecycleView的配置

在build.gradle文件中引入该类。

compile 'com.android.support:recyclerview-v7:23.4.0'

2.RecycleView 的初使用

activity对应的view

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <include
        android:id="@+id/no_data_view"
        layout="@layout/layout_no_data_view"/>

</android.support.constraint.ConstraintLayout>

RecyclerView提供了三种布局管理器:LinerLayoutManager、GridLayoutManager、StaggeredGridLayoutManager

Recycle recyclerView = findViewById(R.id.recyclerView);

//1.LinerLayoutManager 以垂直或者水平列表方式展示Item
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseApplication.getInstance());

//2. GridLayoutManager 以网格方式展示Item
GridLayoutManager layoutManager = new GridLayoutManager(context, 3);

// 3.StaggeredGridLayoutManager 以瀑布流方式展示Item
// 第一个参数表示列数,就好像 GridView 的列数一样,第二个参数表示方向,可以很方便的实现横向滚动或者纵向滚动。
StaggeredGridLayoutManager layoutManager1 = new StaggeredGridLayoutManager(3,VERTICAL);

recyclerView.setLayoutManager(layoutManager);
MyListApapter mAdapter = new MyListAdapter(context);
recyclerView.setAdapter(mAdapter);

RecycleView对应的适配器

public class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.ViewHolder> {

    private Context context;
    private List<String> dataList;

    public MyListAdapter(Context context, List<String> dataList) {
        this.context = context;
        this.dataList = dataList;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        // 实例化展示的view
         View view = LayoutInflater.from(context).inflate(R.layout.item_book_shelf, viewGroup, false);
        // 实例化viewholder
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int i) {
        // 绑定数据
        ........
    }

    @Override
    public int getItemCount() {
        return dataList.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder {
        View rootView;
       

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            rootView = itemView.findViewById(R.id.rootView);
        
        }
    }
}

参考:
添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值