美文网首页
RecyclerView初使

RecyclerView初使

作者: 喵喵好运 | 来源:发表于2021-01-26 20:37 被阅读0次

RecyclerView是什么

官方介绍

RecyclerView与ListView 有什么不同

RecyclerView与ListView 对比浅析:缓存机制

使用RecyclerView展示列表的步骤

  1. 在build.gradle中引用
 implementation 'androidx.recyclerview:recyclerview:1.1.0'
  1. 在布局中申明
<androidx.recyclerview.widget.RecyclerView android:id="@+id/history_listview"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@color/color_000000_10"
    android:dividerHeight="0dp"
    android:fitsSystemWindows="true"
    tools:context="com.idoucx.timething.activity.HistoryListActivity"
    app:layoutManager="LinearLayoutManager"
    tools:listitem="@layout/layout_history" />

注意布局中设置布局中的的layoutManager

  <!--app后面用于设置LayoutManager-->
  xmlns:app="http://schemas.android.com/apk/res-auto"
  app:layoutManager="LinearLayoutManager"

否则就会不展示Layout

RecyclerView: No layout manager attached; skipping layout

也可以通过代码指定:

  mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
  1. 新建Adapter类继承自RecyclerView.Adapter<T>
 class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHolder> {

 }
 

2.1 添加构造方法

 HistoryAdapter(HistoryListActivity parent,
                                      List<RecordInfo> items,
                                      boolean twoPane) {}

2.2 实现onCreateViewHolder和创建ViewHodler 加载布局文件,将View和ViewHolder绑定

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.layout_history, parent, false);
            return new ViewHolder(view);
        }

这里ViewHolder的要继承自 RecyclerView.ViewHolder

 class ViewHolder extends  RecyclerView.ViewHolder {
            @BindView(R.id.history_item_day)
            TextView dayTv;
            @BindView(R.id.history_item_color_view)
            TextView colorView;
            @BindView(R.id.history_item_content_tv)
            TextView contentTv;
            @BindView(R.id.history_item_time_tv)
            TextView timeTv;
            @BindView(R.id.history_item_line1)
            TextView line1;
            @BindView(R.id.history_item_line2)
            TextView line2;
            @BindView(R.id.history_item_delete)
            MaterialButton deleteBtn;

            ViewHolder(View view) {
                super(view);
                ButterKnife.bind(this, view);
            }
        }

2.3 实现getItemCount(),得到子项的个数

     public int getItemCount() {
            LogUtil.e("本次展示的大小是:>"+mRecordInfos.size());
            return mRecordInfos.size();
        }

2.4 实现onBindViewHolder(@NonNull ViewHolder holder, int position)方法,将数据和viewHolder绑定,数据怎么展示,展示的逻辑是什么都写到这里

  1. 将Adapter和RecyclerView绑定
      adapter = new HistoryAdapter(this,recordInfos,false);
        recyclerView.setAdapter(adapter);

相关文章

  • RecyclerView初使

    RecyclerView是什么 官方介绍[https://developer.android.com/refere...

  • RecyclerView —— 为 RecyclerView 添

    个人博客: chrongliu.cn 相关文章 RecyclerView —— RecyclerView 的基本使...

  • Android - RecyclerView 解析

    一、RecyclerView 普通列表实现 RecyclerView 可以实现 ListView 的效果,它通过使...

  • 三个场景带你了解RecyclerView

    说明: RecyclerView的版本是23.2.1,RecyclerView的布局为match_parent,使...

  • Brvah在RecyclerView中的使用

    BRVAH在RecyclerView中的使用 前言 RecyclerView虽然好用但是确实比起ListView使...

  • Glide4与RecyclerView

    Glide4与RecyclerView 关于 RecyclerView 集成库使你在你的应用中能够使用 Recyc...

  • RecyclerView平滑流畅的滑动到指定位置

    背景 在项目中,想使RecyclerView慢慢的平缓滑动指定位置,于是使用: RecyclerView.smoo...

  • 初入 RecyclerView

    打开app/build.gradle文件,在dependencies闭包中添加如下依赖库下添加如下内容: recy...

  • 初使

    我们相信地球是圆的,缘分何尝不是,兜兜转转,9年相识,6年未见,一朝相遇,便知这以后的日子不能没有他了,所有的阻碍...

  • 初使

    乾山芸海陆,破地更重深。 坤转仑盘立,寻思断五尘。 有言天断此,谁道补时痕。 序意无风起,植裁绊举岑。 注:平起,...

网友评论

      本文标题:RecyclerView初使

      本文链接:https://www.haomeiwen.com/subject/xcsnzktx.html