Android Studio RecyclerView

RecyclerView比ListView更高阶且更具灵活性
此元件是一个用於显示庞大资料集的容器,可通过保持有限数量的检视进行非常有效的滚动操作
白话一点就是 可以滚动的清单,内容可随时变更,

1.添加依赖

dependencies {
  implementation "androidx.recyclerview:recyclerview:1.2.1"
  implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
 }

2.在主要显示的mxl 添加元件

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycleview"
            android:layout_width="200dp"
            android:layout_height="200dp"
/>
  1. 在Layout资料夹底下 添加xml档案 //这xml档案,也可以说是排版,你RecyclerView显示出来的模块的版面模样
    https://ithelp.ithome.com.tw/upload/images/20210704/20137519UxFnOGPjd6.jpg

  2. 还需要一个Adapter来调配
    这个Adapter 必须继承 RecyclerView.Adapter
    我是觉得这有点不好吸收, 白话文就是 : 我要实现RecyclerView.Adapter的一个类别来复写与设定

private class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.ViewHolder>{}

  1. 延续第四点 我的MyListAdapter 会Override 三个方法
    分别是
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.recycle_item,parent,false);
            return new ViewHolder(view);
        }
        
        @Override  //从这里面变更设定内容 引用holder.里面 finID的资料修改
        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//            holder.tvId.setText(arrayList.get(position).get("Id"));
//            holder.tvSub1.setText(arrayList.get(position).get("Sub1"));
//            holder.tvSub2.setText(arrayList.get(position).get("Sub2"));
        }

        @Override   //显示条列
        public int getItemCount() {
            return 8;
        }
    }

6.再延续第四点 我的MyListAdapter 还需要内部类别 class ViewHolder extends RecyclerView.ViewHolder{}
冷静点 已经没有再延伸了 , 规整出来就是MyListAdapter 有三个方法跟一个内部类别 这样记就好了

       class ViewHolder extends RecyclerView.ViewHolder{
            private TextView tvId,tvSub1,tvSub2,tvAvg;

            //这里绑定ID 注意绑定语法不一样
            public ViewHolder(@NonNull View itemView) {
                super(itemView);

//                tvId = itemView.findViewById(R.id.textView_Id);
//                tvSub1 = itemView.findViewById(R.id.textView_sub1);
//                tvSub2 = itemView.findViewById(R.id.textView_sub2);
//                tvAvg  = itemView.findViewById(R.id.textView_avg);

            }
  1. OK 前置作业已完成~ 接下来要来撰写Main里面的code了
    先来 宣告找依赖
RecyclerView mRecyclerView;
MyListAdapter myListAdapter;
mRecyclerView = findViewById(R.id.recycleview);
//忘了说 还需要一个 Manager来设定 
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
myListAdapter = new MyListAdapter();
mRecyclerView.setAdapter(myListAdapter);

这样最基本的RecycleLayout就能执行了


<<:  CMoney软件工程师战斗营_专题制作接api与tool分享_Week 18

>>:  AWS Region 与 VPC 入门介绍教学

[Day 07] Sass - Project Structure

Project Structure 这篇文章我们来建立我们Sass专案的架构~ 一般Sass专案内都...

【Day09】数据输入元件 - Upload

元件介绍 Upload 是一个上传元件。帮助我们能够发布文字、图片、影片、档案到後端服务器上。 参考...

Swift 新手-iPhone 界面设计(二)

拇指法则 “拇指法则”是资深交互设计大神Steven Hoober在2013年对1300名手机用户的...

Day 16 - Apply

到目前为止我们已经知道了 Functor 可以将 effect 跟 pure function 进行...

12. STM32-CANBus概念介绍

CAN Protocol 介绍 CAN 全名为控制器区域网路 (Controller Area Ne...