Android开发学习教程(19)- Android RecyclerView列表用法

0 1,203

—— 放弃不难,但坚持一定很酷。

RecyclerView是什么

RecyclerView是一个和ListView一样用来显示大量数据列表但是比ListView更高效的列表控件。关于ListView的学习请见上一篇文章。

RecyclerView有什么用

RecyclerView用来更高效的展示大量数据列表。

RecyclerView怎么用

1. 导入依赖包

1
implementation 'androidx.recyclerview:recyclerview:1.1.0'

2. 布局中加入RecyclerView控件

1
2
3
4
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

3. 实例化RecycleView并设置布局方式

1
2
3
4
RecyclerView recyclerView = findViewById(R.id.recyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);

其中LinearLayoutManager就是类似ListView的功能,列表上下滚动(LinearLayoutManager.VERTICAL)或者左右滚动(LinearLayoutManager.VERTICAL)。除了可以设置为LinearLayoutManager还可以设置GridLayoutManager、StaggeredGridLayoutMnager,GridLayoutManager是网格摆放,而StaggeredGridLayoutMnager则是瀑布流摆放。

4. 获取数据,定义自己的数据适配器并设置到RecyclerView上

自定义BaseAdapter可以展示任意类型的数据列表项,其实上面SimpleAdapter和ArrayAdapter都是继承自BaseAdapter,区别在于getView方法,SimpleAdapter和ArrayAdapter的getView读者可以自行查看源码,基本和上面截取的一小段差不多。我们来看自定义BaseAdapter的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    // 获取数据,这里模拟获取到了20条数据
    stringList = new ArrayList<>();
    for (int i = 0; i < 20; i++) {
        stringList.add("Item" + i);
    }
    recyclerView.setAdapter(new MyAdapter());
    // 定义自己的数据适配器
    class MyAdapter extends RecyclerView.Adapter<myadapter.myviewholder> {
        @NonNull
        @Override
        public MyAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View itemView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_recyclerview, parent, false);
            return new MyViewHolder(itemView);
        }
        @Override
        public void onBindViewHolder(@NonNull MyAdapter.MyViewHolder holder, int position) {
            holder.tvName.setText(stringList.get(position));
        }
        @Override
        public int getItemCount() {
            return stringList == null 0 : stringList.size();
        }
    // 定义缓存ViewHolder
        class MyViewHolder extends RecyclerView.ViewHolder {
            public TextView tvName;
            public MyViewHolder(View itemView) {
                super(itemView);
                tvName = itemView.findViewById(R.id.tv_name);
                tvName.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this, tvName.getText(), Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }
    }
</myadapter.myviewholder>

运行效果:

Android开发学习教程(19)- Android RecyclerView列表用法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章资源,如无特殊说明或标注,均为本站网友和创作者贡献分享。如若本站内容侵犯了原著者的合法权益,可联系网站客服QQ2743319061删除。

云炬星球 安卓教程 Android开发学习教程(19)- Android RecyclerView列表用法 https://src.yunjunet.cn/876790.html

常见问题
  • 放心亲,我们不会为了几十块钱的东西坏了名声!
查看详情
  • 方法一:点击“立即下载.”按钮,付款后在下载弹窗的虚线框的隐藏信息里获取 方法二:在正文底部使用VIP查看隐藏的解压密码 方法三:联系【云炬网络】公众号客服获取
查看详情
  • 付款后会出现“立即下载”按钮(点击即可下载),如果下载失败也可以联系客服发订单截图补发。
查看详情
  • 登录购买会多端同步购买记录,永久可以查看反复下载;非登录购买仅将购买记录保存到本地浏览器中,浏览器cookie清除后无法再次下载。先右上角点登录,然后点击微信图标可以快速授权注册登录^_^
查看详情
  • 可以试看。点击”查看演示“或“试看预览”按钮可以试读从资料目录中节选的部分内容,也可以自己指定想试看的内容。
查看详情
  • 原因一:本站所有资源已开启有效性检测(服务器24h全自动监测),当监测到下载链接无法访问时会提示“该资源已失效,请勿购买”,遇到这种情况可以联系客服修复失效的下载链接,或直接联系客服在淘宝下单购买即可。(检测原理:购买前服务器程序会预访问下载链接,响应值为200说明资源有效允许购买,响应值为404或502等报错说明资源失效禁止购买)。原因二:上传者未启用“下载”选项。
查看详情
官方客服团队

为您解决烦忧 - 24小时在线 专业服务