当前位置: 首页 > 资讯 >

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就能执行了


相关文章:

  • Day5 Python 基础教学 (四)
  • ISO 27001 资讯安全管理系统 【解析】(五)
  • Day20-Go测试(testing)
  • [Day 29] 毁灭人类的人工智慧
  • 【Day 22】卷积神经网路(Convolutional Neural Network, CNN)(下)
  • Day 5 基本 flask 函式 (2)
  • Day5 - 找出适合自己的案子
  • (Hard) 30. Substring with Concatenation of All Words
  • [想试试看JavaScript ] HTML DOM
  • Day12,YAML Engineer 初登板
  • JavaScript Day18 - 阵列操作(filter、find、findIndex)
  • 第 13 天 坚持刷题持续进步( leetcode 016 )
  • [Java Day12] 3.6. break & continue
  • {DAY 16} Pandas 学习笔记 part.2
  • Gulp 压缩优化程序码(2) DAY89
  • 使用MailPoet扩展您的电子商务邮件列表
  • 如何找国外网红营销?国外网红营销方法和推荐
  • 海外营销周报:Facebook应用下载量下降30%,TikTok在欧洲测试应用内购买…
  • 苹果手机Apple美国区账号无信用卡购买教程【Apple ID美国区绑定PayPal教程】
  • WordPress SEO怎么做?如何优化WordPress提升流量
  • G口服务器推荐:G口服务器VPS哪家好
  • 国内出海企业用哪家公司的短信比较多?
  • TikTok与LiveRamp合作,助力品牌安全可靠地触达受众
  • VPS评测:Netcloud/香港/原生IP/不限流量/月付60港币起
  • 区块链是什么东西?区块链原理是什么
  • WooCommerce 带动顾客购物的十种方法
  • 教程/Directory Lister逗比魔改版 Github开源(个人云)
  • Git是什么?
  • 最好的国外VPS推荐:国外好用便宜性价比高的VPS有哪些
  • RPA是什么?Litrpa是什么?可以做什么好用吗?