Flutter ListView组件详解

news2025/1/12 11:59:49

今天是2023年4月24日

今天重新复习了一下关于ListView的内容,现在就重新整理一下关于ListView的内容和理解
:
(1)ListView和Column之间有什么区别?
在我理解中ListView和Column都是可以有很多子组件的组件,它们之间区别在于它们排列的形式和
是否可以滑动:
[1].ListView:ListView是一个本身就支持滑动的组件,且排列方式可以是垂直也可以是水平。它的子组件通常是通过一个数据源(如数组)来生成的,每个子组件都是相互独立的。

[2].Column:Column是一个本身并不支持滑动的组件(在不使用其他组件的前提下),排列只能是垂直排列,它的子组件是一个有序的列表,每个子组件都是相对于父组件的位置来确定的。

(2)提供一个ListView的例子并且使用到ListTile和Divide

import 'package:flutter/material.dart';
//这里使用一个比较简单的例子完成
void main() => runApp(
      MaterialApp(
        home: Scaffold(
          body: ListView(
            children: [
              ListTile(
                leading: Text("文本"),
                title: Text("文本1"),
                subtitle: Text("文本2"),
                trailing: Text("文本3"),
              ),
              Divider(
                color: Colors.blue,
                thickness: 2, //线的宽度
                indent: 12, //前面的边距
                endIndent: 12, //后面的边距
                height: 20, //调整位置
              ),
            ],
          ),
        ),
      ),
    );


运行效果为:
请添加图片描述
(3)图文列表,一张图片一段文本(一次类推)

import 'package:flutter/material.dart';

void main() => runApp(
      MaterialApp(
        home: Scaffold(
          body: ListView(
          //这里采用的是ListView中使用for循环来完成渲染内容的操作
            children: [
              for (var a = 0; a < 10; a++)
                Column(
                  children: [
                    SizedBox(
                      width: 200,
                      height: 400,
                      child: Image.network(
                        "https://tse1-mm.cn.bing.net/th/id/OIP-C.SetpVlIiIa4eLD4cQxHuvAHaNK?pid=ImgDet&w=1080&h=1920&rs=1",
                        fit: BoxFit.fitHeight,
                      ),
                    ),
                    Text("这是一张网络图片")
                  ],
                ),
            ],
          ),
        ),
      ),
    );

效果图:
请添加图片描述
(4)常量构造函数能不能加函数体?

class Person {
  const Person() {}//报红
}


常量函数是不能添加函数体的,因为常量函数成员不可变,如果你加了函数体,则说明有可能改变成员值,
这是不被认可的操作,所以实际上如果你给常量构造函数添加函数体,会出现提示:
Const constructors can't have a body.
构造函数不能有主体

(5)使用一下ListView中的builder

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
      home: Scaffold(
        body: ListView.builder(
          itemCount: 10,
          itemBuilder: (BuildContext context, int index) {
          //然后这里提一下几乎人人都知道的内容,如果在ListView中的你给子组件的大小
          //不管用可以看看是否给它添加了位置组件,
            return Center(
              child: Container(
                decoration: BoxDecoration(
                    border: Border.all(color: Colors.blue),
                    color: Colors.black),
                width: 100,
                height: 100,
              ),
            );
          },
        ),
      ),
    ));

运行效果
请添加图片描述
(6)什么情况下,会提示要给成员变量加一个late? 为什么要建议加上late,是哪一个规则决定的?

在使用Dart编程语言时,如果成员变量在声明时没有被初始化,而且在构造函数中也没有被赋值,那么编译器会提示将该变量声明为late。
建议加上late是为了避免在访问该变量之前出现空指针异常。这是因为Dart在运行时要求所有变量必须被初始化,否则编译器会在编译时报错。
将变量声明为late后,编译器会在运行时进行检查,如果变量没有被初始化,则会抛出一个异常。
这个规则是在Dart语言规范中定义的。在Dart中,late是一个关键字,用于声明成员变量为“延迟初始化”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python实现AI写歌词GUI版本【文末源码】

**引言&#xff1a;**自然语言处理作为人工智能的一个重要分支&#xff0c;在我们的生活中得到了广泛应用。其中RNN算法作为自然语言处理的经典算法之一&#xff0c;是文本生成的重要手段。而今天我们就将利用RNN算法建立一个写歌词的软件。其中的界面如下&#xff1a; RNN指的…

使用binding时,LayoutSubscribeFragmentBinding报错

LayoutRecommendFragmentBinding是一个DataBinding类&#xff0c;它由编译器自动生成&#xff0c;用于访问布局文件中的视图。如果你在代码中看到LayoutRecommendFragmentBinding报红&#xff08;提示未解析的引用&#xff09;&#xff0c;可能有以下原因&#xff1a; 1. 检查…

Docker 的数据管理(dockerfile)

Docker 的数据管理&#xff08;dockerfile&#xff09; 管理 Docker 容器中数据数据卷数据卷容器端口映射 容器互联&#xff08;使用centos镜像&#xff09;Docker 镜像的创建1&#xff0e;基于现有镜像创建2&#xff0e;基于本地模板创建3&#xff0e;基于Dockerfile 创建镜像…

Android主流网络请求开源库的对比

目录 一、为什么要用网络请求开源库&#xff1f; 网络请求开源库是一个将网络请求的相关功能封装好的类库 没有网络请求框架之前 App想与服务器进行网络请求交互是一件很痛苦的事&#xff1a;因为Android的主线程不能进行网络请求&#xff0c;需另开1个线程请求、考虑到线程池…

软件工程开发文档写作教程(03)—开发文档的必备条件

本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;电子工业出版社《软件文档写作教程》 马平&#xff0c;黄冬梅编著 必备条件概述 软件系统配备软件文档不仅对于公司非常有益&#xff0c;而且也能够让客户从中…

【Linux】【配置】网络连接

NetworkManager介绍 NetworkManager 是一个在 Linux 系统上管理网络连接的系统服务和工具。它可以自动配置和管理有线、无线、移动宽带和虚拟专用网络 (VPN) 连接&#xff0c;以及其他类型的网络连接。 NetworkManager 提供了一种简单且易于使用的方法来管理网络连接&#xff…

JSP、JSTL标签

<!-- JSTL的表达式的依赖--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><!--Standard标签库--><dependency><groupId>java…

QGroundControl之安装调试

QGroundControl之安装调试 1. 源由2. 问题汇总2.1 摄像头播放问题2.2 Windows电脑录像和拍照保存位置2.3 Android设备录像和拍照保存位置 3. 打包资料4. 附录-QGroundControl-Video Streaming5. 附录-QGroundControl效果图6. 参考资料 1. 源由 开源软件的好处就是免费&#xf…

数字政府智慧政务一网通办解决方案2022(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 建设成效 让政务服务全流程更“好办、智办” 智慧政务“111”架构 服务门户 统一入口、多端同步&#xff0c;一网融合、数据同源 服务门户 智能客服、智能问答、智能外呼实现…

2023一网通办一网统管一码互联一网共治建设方案(PPT可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 智慧城市基础平台的定位 智慧城市各模块的纵向关系 智慧城市-数据中枢整体架构 数据中枢在智慧城市定位 数据中枢定位1、数据中枢是智慧城市基础平台的核心组成部分&#x…

虚拟化技术 — VirtIO 虚拟设备接口标准

目录 文章目录 目录VirtIOVirtIO 虚拟设备接口标准VirtIO 的前后端分层架构标准VirtIO 的数控路径分离架构标准VirtIO 的传输层标准 VirtIO 标准在 Linux 中的实现 VirtIO VirtIO 由 Rusty Russell 开发&#xff0c;最初是为了支持自己开发的 lguest Hypervisor&#xff0c;其…

对象存储之SeaweedFS简介及与MinIO的对比

什么是SeaweedFS&#xff1f; SeaweedFS架构&#xff1a; master service【主服务】和Volume service【卷服务】一起提供分布式对象存储服务&#xff0c;支持用户配置数据的复制和冗余策略。可选的Filer service【过滤器】和S3 service【S3服务】是对象存储之上的附加层&#x…

量子力学 学习

对于同一个竖直向上量子比特&#xff0c;不对他进行任何的干扰&#xff0c;进行第一次水平测试实验会随机得到一个一或者负一&#xff0c;之后再进行多少次水平测试实验都与第一次的试验结果是相同的。 我们换用其他的竖直向上量子比特&#xff0c;或者对原来的量子比特进行干扰…

高阶函数的面试

说说JS原型和原型链 原型&#xff1a;函数都有prototype(显示原型)属性&#xff0c;而prototype会自动初始化一个空对象&#xff0c;这个对象就是原型对象 原型对象中会有一个constructor属性,这个属性将指向了函数本身 实例化对象都有一个_proto_(隐式原型)属性&#xff0c…

Spring基于注解读取和存储对象

目录 一. 存储 Bean 对象 1. 前置工作&#xff1a;配置扫描路径 2. 使用五大类注解存储Bean对象 Controller 命名规则 Service Repository Compoent Configuration 五大类注解之间的关系 3. 使用方法注解存储Bean对象 二. 获取 Bean 对象 1. 属性注入 优点分析 缺…

详解C语言string.h中常用的14个库函数(二)

本篇博客继续讲解string.h中的库函数。在上一篇博客中&#xff0c;我介绍了strlen, strcpy, strcat, strcmp这4个字符串操作函数&#xff0c;本篇博客会继续介绍strncpy, strncat, strncmp这3个类似的函数。 strcpy, strcat, strcmp这3个函数是长度不受限制的字符串操作函数&a…

预算约束下营销效果优化的端到端框架(快手)

目录 翻译&#xff1a;预算约束下营销效果优化的端到端框架 1介绍 2 .相关工作 2.1预算分配 2.2梯度估计 3我们的端到端框架 3.1符号 ​3.2两阶段范式 3.3 Marketing Goal as a Regularizer 3.4梯度估计 ​3.5训练 4实验结果 4.1数据集 4.2评价指标 4.3实现细节 …

Windows环境下NVM安装后Node/NPM命令无法使用

问题&#xff1a;Windows环境下安装nvm后&#xff0c;使用nvm安装node&#xff0c;无法使用node相关命令。 解决方案&#xff1a;注意安装的时候有两个路径&#xff0c;第一个是nvm所在的路径&#xff0c;第二个是nodejs所在的路径&#xff0c;大家需要在对应的目录下找到路径…

基于SSM的电影订票管理系统

有需要请私信或看评论链接哦 可远程调试 基于SSM的电影订票管理系统 一 介绍 基于SSM的电影订票管理系统&#xff0c;本项目分为前台和后台&#xff0c;登录角色分为普通用户和管理员。用户可注册登录&#xff0c;个人中心&#xff0c;搜索电影&#xff0c;选座购票&#xff…

机器学习——损失函数(lossfunction)

问&#xff1a;非监督式机器学习算法使用样本集中的标签构建损失函数。 答&#xff1a;错误。非监督式机器学习算法不使用样本集中的标签构建损失函数。这是因为非监督式学习算法的目的是在没有标签的情况下发现数据集中的特定结构和模式&#xff0c;因此它们依赖于不同于监督…