06 |「RecyclerView」

前言

实践是最好的学习方式,技术也如此。

一、简介

  • RecyclerView 是列表;
  • 好处:更高效率的列表控件;
  • 用法:重点 RecycleerView.Adapter 的写法;可以通过 LayoutManager(布局管理器)来决定布局的样式,是线性的、网格列表还是瀑布流列表;
  • RecyclerView 列表是如何实现显示的 ?
    • 是将数据放到对应的位置上,根据数据内容的数量来显示(即告诉列表有多少个条目) ;

二、Adapter

  • 是什么

    • 适配器、连接器;
  • 为什么要有 Adapter

    • 列表中不只有一条数据,不像 TextViewImageView 一样,一个控件对应一条数据;
    • 列表形式的数据,如何将多个布局与多个数据连接起来?中间就通过 adapter,将数据放到对应的控件的位置;
  • Adapter 的分类

    • ArrayAdapter:简单列表;
    • SimpleAdapter:图文列表;
    • BaseAdapter:图文复杂列表 ;

三、示例

1、背景

用 RecyclerView 列表显示各个城市天气数据

2、代码

  • FutureWeatherAdapter 是一个自定义的适配器类,它继承自 RecyclerView.Adapter 类;在泛型参数中,指定了一个内部类 WeatherViewHolder 作为适配器的视图持有者

    • WeatherViewHolder 是用于在 RecyclerView 中显示每个天气数据的视图持有者类;
    • 通常情况下,你会在适配器内部定义一个继承自 RecyclerView.ViewHolder 的内部类来表示列表项的视图结构和布局
  • onCreateViewHolder() 方法用于创建 ViewHolder,即创建用于显示单个天气条目的视图,并返回 ViewHolder 对象;使用布局填充器从 XML 布局文件中实例化视图,并将其传递给自定义的 ViewHolder 对象。

    • 在创建新的 ViewHolder 实例时调用。当 RecyclerView 需要显示新的列表项时,会调用该方法来创建一个 ViewHolder 对象 ;
    • onCreateViewHolder() 返回的 ViewHolder 对象会被 RecyclerView 用于显示列表项。当 RecyclerView 需要显示新的列表项时,它会调用 onCreateViewHolder() 方法来创建一个新的 ViewHolder 对象,并将其返回
  • onBindViewHolder() 方法用于将数据绑定到 ViewHolder 上,即将具体的天气数据填充到对应的视图控件中。在这个方法中,获取当前位置的天气数据对象,然后将其属性分别设置到 ViewHolder 中的各个 TextView 和 ImageView 中;

    • 方法在 RecyclerView 需要将数据绑定到 ViewHolder 以显示新的列表项时被调用。当 RecyclerView 中的列表项需要更新或者需要显示新的列表项时,会调用该方法;
  • getItemCount() 方法用于获取数据集中的条目数,即天气数据列表的大小;

    • getItemCount() 方法返回的数据会告诉 RecyclerView 有多少个列表项需要在屏幕上显示。当 RecyclerView 需要确定列表的大小时,它会调用 getItemCount() 方法
  • 内部类 WeatherViewHolder 继承自 RecyclerView.ViewHolder,用于持有每个天气条目的视图控件的引用;在构造方法中,通过传入的视图参数找到并引用了各个视图控件;

    
    public class FutureWeatherAdapter extends RecyclerView.Adapter<com.example.weatherapp.adapter.FutureWeatherAdapter.WeatherViewHolder
下载前必看:https://pan.quark.cn/s/a4b39357ea24 在本资料中,将阐述如何运用JavaScript达成单击下拉列表框选定选项后即时转向对应页面的功能。 此种技术适用于网页布局中用户需迅速选取并转向不同页面的情形,诸如网站导航栏或内容目录等场景。 达成此功能,能够显著改善用户交互体验,精简用户的操作流程。 我们须熟悉HTML里的`<select>`组件,该组件用于构建一个选择列表。 用户可从中选定一项,并可引发一个事件来响应用户的这一选择动作。 在本次实例中,我们借助`onchange`事件监听器来实现当用户在下拉列表框中选定某个选项时,页面能自动转向该选项关联的链接地址。 JavaScript里的`window.location`属性旨在获取或设定浏览器当前载入页面的网址,通过变更该属性的值,能够实现页面的转向。 在本次实例的实现方案里,运用了`eval()`函数来动态执行字符串表达式,这在现代的JavaScript开发实践中通常不被推荐使用,因为它可能诱发安全问题及难以排错的错误。 然而,为了本例的简化展示,我们暂时搁置这一问题,因为在更复杂的实际应用中,可选用其他方法,例如ES6中的模板字符串或其他函数来安全地构建和执行字符串。 具体到本例的代码实现,`MM_jumpMenu`函数负责处理转向逻辑。 它接收三个参数:`targ`、`selObj`和`restore`。 其中`targ`代表要转向的页面,`selObj`是触发事件的下拉列表框对象,`restore`是标志位,用以指示是否需在转向后将下拉列表框的选项恢复至默认的提示项。 函数的实现通过获取`selObj`中当前选定的`selectedIndex`对应的`value`属性值,并将其赋予`...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个写代码的修车工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值