第五回:如何使用ListView Widget

news2024/9/24 19:22:25

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了Container Widget,本章回中将介绍 ListView这种Widget,闲话休提,让我们一起Talk Flutter吧。

概念介绍

ListView就是一个滚动的列表,它可以看作是在Column的基础上添加了滚动功能,主要用来显示多条内容,当被显示的内容大于屏幕高度时就让内容在屏幕中滚动显示。

使用方法

  1. 创建列表中的单条列表;通常使用ListTitle表示,我们只需要创建一个ListTitle类的对象就可以;
  2. 把单条列表添加到ListView中,通常使用chirldern成员变量来控制;
  3. 使用scrollDirection成员变量来控制列表的滚动方向,默认是垂直滚动;

示例代码

介绍完使用方法后,我们通过具体的代码来演示ListView的用法;

    ListTile listItem(IconData icon, String content) {
      return ListTile(
        leading: Icon(
          icon,
          color: Colors.blue,
        ),
        title: Text(
          content,
          style: const TextStyle(
            color: Colors.black,
            fontSize: 22,
          ),
        ),
      );
    };

    Widget listEx = ListView(
      scrollDirection: Axis.vertical,
      children: [
        listItem(Icons.face, "One"),
        listItem(Icons.face, "One"),
        listItem(Icons.face, "One"),
        listItem(Icons.phone, "One"),
        listItem(Icons.cabin, "One"),
        listItem(Icons.cable, "One"),
      ],
    );

在上面的代码中,我们先创建了一个ListTitle类,类中包含一个图标和一个文本,也就是说ListView每一条项目中都会显示一个图标和一个文本;然后我们把ListTitle类通过children成员(或者叫命名参数)添加到ListView中。列表的显示方向是垂直,也可以设置为水平,代码中的垂直可以省略,因为默认值就是垂直。最后把ListView这个widget放到app中来运行,下面是示例代码:

void main() {
  runApp(HelloApp());
}

class HelloApp extends StatelessWidget {
  const HelloApp({Key? key}) : super(key: key);

  
  Widget build(BuildContext context) {

  //详细代码参考上面的内容
  ListTile listItem(IconData icon, String content) {};
  Widget listEx = ListView();

  return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(primaryColor: Colors.blue),
        // home: const StatefulAppEx(),

        home: Scaffold(
            appBar: AppBar(
              title: const Text("Title of Hello App"),
            ),
            // body: Column(
            //   children: [
            //     wechatBottom,
            //     listEx,
            //   ],
            // )
          body: listEx,
        )
    );
  }

注意:上面代码中注释掉的代码无法运行,需要把ListView单独放在body中才可以运行。因为ListView是Column的扩展,所以无法把它嵌套在Column中。

编译并且运行上面的程序可以得到以下效果,运行效果中的图标使用SDK中自带图标,文字都一样,大家可以自行修改。
在这里插入图片描述

看官们,关于ListView Widget的内容就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

WPS表格查找替换技巧:让你的工作效率翻倍

WPS表格中查找和替换是最基础的操作,看似简单,但是还有很多人在工作中不会熟练使用,其实掌握一些小技巧可以快速提高工作效率,本节课就来介绍几种比较有效的“查找和替换技巧”。 本节课目录: 1、常规的查找和替换 2…

AIGC市场群雄逐鹿,阿里云发出了什么大招?

如果要评选当下IT圈最火爆的话题,相信就算生成式AI(Artificial Intelligence Generated Content,简称AIGC)甘认第二,也没有人敢认第一。于是我们看到,在ChatGPT快速升级迭代的同时,百度、360、商…

基于树莓派的智能家居控制系统设计论文参考

完整论文咨询可WX联系:gyf1842965496 智能家居控制系统功能实现详细介绍:基于树莓派的智能家居控制系统设计https://blog.csdn.net/G1842965496/article/details/125491350#comments_26030679 目录 论文简述 摘要 随着科技的进步,人们生活水…

DAY 37 shell免交互

Here Document 概述 常用的交互程序:read,ftp,passwd,su,sudo cat也可配合免交互的方式重定向输出到文件 Here Document 的作用 使用I/O重定向的方式将命令列表提供给交互式程序标准输入的一种替代品 格式 命令 &…

创建部署你的第一个智能合约

原文参考地址 【Web3 开发系列教程—创建你的第一个智能合约(2)】部署第一个智能合约,增加自己的内容 如果你是区块链开发的新手并且不知道从哪里开始,或者你只是想了解如何部署智能合约并与之交互,那么本指南适合你。…

大数据技术(入门篇)--- 使用Spring Boot 操作 CDH6.2.0 Spark SQL进行离线计算

前言 CDH 6.2.0 搭建的环境,并不能直接使用 spark 相关资源,需要对此服务端环境进行一些修改Spark 目前仅支持 JDK1.8, Java项目运行环境只能使用JDK 1.8我这里使用的是 CDH6.2.0集群,因此使用的依赖为CDH专用依赖,需要先添加仓库…

跨平台开发工具怎么选?IDE工具推荐

软件开发工具链的价值,越来越多企业看到了它。近年来,国内也迎来了软件开发工具的自主化浪潮,今天就来跟大家盘点一下2023年十大移动开发IDE工具。 一、Android Studio 作为Android开发IDE工具的首选,Android Studio提供了一个全…

API7 助力头部券商实现数字化转型

背景 随着中国经济步入高质量发展阶段,数字化转型正在被更多的企业提上议程。2021 年证监会出台的《证券期货行业科技发展“十四五”规划》中指出,需“提升证券期货业数据治理水平”,“深化数字化转型标准建设,推动行业数据接口的…

涨点神器:Yolov8引入CVPR2023 InternImage:注入新机制,扩展DCNv3,助力涨点,COCO新纪录65.4mAP!

1.InternImage介绍 论文:https://arxiv.org/abs/2211.05778 代码:GitHub - OpenGVLab/InternImage: [CVPR 2023 Highlight] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions 理论部分参考知乎:CVPR2023 Highlight | 书生模型霸…

机器学习:LightGBM算法原理(附案例实战)

机器学习:LightGBM算法原理(附案例实战) 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可…

Python结合Qt实现点击按钮保存并生成自定义word详细讲解(相信我,耐心看完,一定会有收获的)

一、需求介绍 因为我的毕设需要设计一个系统,然后把结果生成检测报告供企业下载。模型大概已经训练好了,也就差个导出word功能,把模型识别的数据结果输入到word导出即可。 二、最终实现效果 这里随便整个模板来对所需要的函数进行说明&…

嵌入式 QT Creator使用

目录 1、QT Creator界面 2、QT Creator设置 3、第一个程序 3.1 新建一个项目 3.2 项目的文件组成和管理 3.3 项目的编译、调试与运行 1、QT Creator界面 启动 Qt Creator ,出现如图 1 所示的主窗口: Qt Creator 的界面很简洁。上方是主菜单栏&a…

【架构设计】如何设计一个几十万在线用户弹幕系统

文章目录 一、前言二、项目介绍客户端轮询WebSocket主动推送 三、弹幕初始架构四、弹幕架构演进五、弹幕存储六、弹幕查询七、总结 一、前言 现在无论是直播还是电视剧,我们都可以看到上面慢慢的弹幕,满足十几万用户在线的弹幕系统,我们该如…

ChatGPT 如何获取API Key

什么是OpenAI API Key? OpenAI是ChatGPT的“开发商”,提供API使得开发者可以在自己的应用程序上调用OpenAI的相关服务(除了ChatGPT,OpenAI还有其他产品)。如果想调用OpenAI的产品服务在自己的应用程序上,我们就需要申…

Web接口测试工具---Poster与Postman

工作当中有不少时间在编写和维护接口自动化测试用例。打算先整理一些接口相关工具的使用。 简单对接Web口测试的相关工具/技术做个划分。 HTTP/SOAP协议接口的功能测试: 1、浏览器URL(GET请求) http://127.0.0.1:8000/login/?usernamezhangs…

4.25、IO多路复用简介

4.25、IO多路复用简介 1. I/O多路复用(I/O多路转接)①阻塞等待(BIO模型)②非阻塞,忙轮询(NIO模型)③IO多路转接技术(select/poll)④IO多路转接技术(epoll&am…

基于DeepSpeed训练ChatGPT

基于DeepSpeed训练ChatGPT 最少只需一张32G GPU,自己也可以训练一个ChatGPT! 最近微软发布了一个基于DeepSpeed的训练优化框架来完成ChatGPT类模型的训练,博主对其进行了研究并通过此博文分享相关技术细节。 一、配置预览 1、开源仓库&…

如何更换电脑背景图片?这样做很简单!

案例:怎样把电脑背景图换成自己的照片? 【我的电脑背景图片是系统自带的壁纸,不太好看,我想把它换成自己的照片。有没有小伙伴知道电脑怎么更换背景图片?在线求个简单的方法!】 在日常生活中,…

YOLOV5引入SE注意力机制以及精度提升问题

YOLOV5引入SE注意力机制以及精度提升问题 1. 如何增加SE注意力机制 在model/common.py中添加SE结构 class SE(nn.Module):def __init__(self, c1, c2, r16):super(SE, self).__init__()self.avgpool nn.AdaptiveAvgPool2d(1)self.l1 nn.Linear(c1, c1 // r, biasFalse)sel…

23-Ajax-axios

一、原生Ajax <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…