flutter中的列表组件
- 垂直列表
- 垂直图文列表
- 水平列表
- 动态列表
- 矩阵式列表
列表参数
在flutter中,类别组件 ListView 包含以下可选参数:
- scrollDirection:Axis.horizontal 水平列表Axis.vertical 垂直列表
- padding:内边距
- resolve:组件反向排序
- children :列表元素
基本列表
import 'package:flutter/material.dart';void main() => runApp(MyApp());class MyApp extends StatelessWidget {@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('FlutterDemo')),body: HomeContent(),));} }
class HomeContent extends StatelessWidget {@overrideWidget build(BuildContext context) {// TODO: implement buildreturn ListView(padding: EdgeInsets.all(10),children: <Widget>[Image.network("http://pic18.nipic.com/20120204/8339340_144203764154_2.jpg"),Container(child: Text('我是一个标题',textAlign: TextAlign.center, style: TextStyle(fontSize: 28,), ),height: 60,padding:EdgeInsets.fromLTRB(0, 10, 0, 10),),Image.network("http://pic1.nipic.com/2009-02-17/200921701719614_2.jpg"),Container(child: Text('我是一个标题',textAlign: TextAlign.center, style: TextStyle(fontSize: 28,), ),height: 60,padding:EdgeInsets.fromLTRB(0, 10, 0, 10),),Image.network("http://pic9.nipic.com/20100923/2531170_140325352643_2.jpg"),Container(child: Text('我是一个标题',textAlign: TextAlign.center, style: TextStyle(fontSize: 28,), ),height: 60,padding:EdgeInsets.fromLTRB(0, 10, 0, 10),),Image.network("http://pic37.nipic.com/20140110/17563091_221827492154_2.jpg"),Container(child: Text('我是一个标题',textAlign: TextAlign.center, style: TextStyle(fontSize: 28,), ),height: 60,padding:EdgeInsets.fromLTRB(0, 10, 0, 10),),],);} }
在ListView组件中,可以放Container、Text、Image等很多组件,但是通常展示列表的时候,使用的是ListTile组件,这个组件中可以配置标题、二级标题、图片等等。
class HomeContent extends StatelessWidget {@overrideWidget build(BuildContext context) {return ListView(padding: EdgeInsets.all(10),children: <Widget>[ListTile(title: Text('华北黄淮高温持续 南方强降雨今起强势登场',style: TextStyle(fontSize: 24),),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('中国13家运营波音737MAX航空公司均已提出索赔场',style: TextStyle(fontSize: 24),),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华中国13家运营波音737MAX航空公司均已提出索赔登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华北黄淮高温持续 势登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华北黄淮高温起强势登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华北黄淮高雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),),ListTile(title: Text('华北黄淮高温持续 南方强降雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,北方今年首轮大范围高温拉开序幕,昨天是高温发展的最鼎盛阶段"),)],);} }
还可以在上面的列表中添加图标,文字前面添加图标使用leading,后面添加图标使用trailing
class HomeContent extends StatelessWidget {@overrideWidget build(BuildContext context) {return ListView(padding: EdgeInsets.all(10),children: <Widget>[ListTile(leading:Icon(Icons.settings,size:40),title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),),ListTile( title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),trailing:Icon(Icons.home),),ListTile(leading:Icon(Icons.pages),title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),),ListTile(leading:Icon(Icons.settings),title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),),ListTile(leading:Icon(Icons.home,color: Colors.yellow,),title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),),ListTile(leading:Icon(Icons.pages),title: Text('华北黄淮高温雨今起强势登场'),subtitle: Text("中国天气网讯 21日开始,华北黄淮高温雨今起强势登场"),)],);} }
除了添加自定义的图标,也可以添加本地和远程图片:
水平列表
在ListView中,可以使用scrollDirection 来控制是水平列表还是垂直列表,默认为垂直列表,当要展示水平列表的时候,需要添加scrollDirection: Axis.horizontal
class HomeContent extends StatelessWidget {@overrideWidget build(BuildContext context) {return Container(height: 180,child: ListView(scrollDirection: Axis.horizontal,children: <Widget>[Container(width: 180.0, color: Colors.red,),Container(width: 180.0, color: Colors.orange,child: ListView(children: <Widget>[Image.network("http://pic25.nipic.com/20121205/10197997_003647426000_2.jpg"),Text('我是一个文本')],),),Container( width: 180.0,color: Colors.blue,),Container( width: 180.0,color: Colors.deepOrange,),Container( width: 180.0,color: Colors.deepPurpleAccent,),],),);} }
需要注意的是,在水平列表中,列表项的高度是等于ListView组件的高度的,也就是说,为ListView组件里面的列表项添加高度是没有用的,所以,如果要控制水平列表的高度,需要在ListView组件的父组件里面设置高度,上面Container里面设置的高度就是用来控制水平列表的高度,垂直列表的宽度同理。
转载于:https://www.cnblogs.com/yuyujuan/p/10963001.html
flutter中的列表组件相关推荐
- 在Flutter中嵌入Native组件的正确姿势
引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择.本文希望向大家介绍AndroidView的使用方式 ...
- Flutter中的Scaffold组件
概述 在开始说明Scaffold组件之前,先大致讲述一下Material Design风格.Material Design也成为纸墨设计风格,是由Google退出的全新的设计语言,这种设计语言旨在为手 ...
- Flutter 中的 Image 组件 如何加载网络图片和本地图片
如下,直接上代码说明: mian(){ runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build( ...
- Flutter中Stack层叠组件以及与Align、Positioned组件实现定位布局
1. Stack 组件 Stack 表示堆的意思,用此组件修饰的子组件会"堆"在一起. 常见属性: 1. alignment 对齐方式: 2. children 子组件: 代码示 ...
- Flutter中常用的组件-Expanded
//将 Row 子部件包装在 Expanded 对象中有助于它水平扩展空间并占用其余的 Row 空间.new Row(children: [//Expanded 是一个小部件,有助于根据主轴扩展 Ro ...
- Flutter ListView (动态)列表组件、水平列表组件、图标组件详解
Flutter ListView (动态)列表组件.水平列表组件.图标组件 Flutter ListView 基础列表组件.水平列表组件.图标组件 列表常见的几种情况: 垂直列表 垂直图文列表 横向列 ...
- Flutter 中的常见的按钮组件 以及自 定义按钮组件、FloatingActionButton 实现类似 闲鱼 App 底部导航凸起按钮
文章目录 一. Flutter 中的按钮组件介绍 二. Flutter 按钮组件中的一些属性 三. Flutter FloatingActionButton 介绍 四. FloatingActionB ...
- 【Flutter 问题系列第 22 篇】在 Flutter 中如何截取屏幕并显示到页面中,以及如何将截图保存到相册
这是[Flutter 问题系列第 22 篇],如果觉得有用的话,欢迎关注专栏. 关于在 Flutter 中如何截取屏幕,以及如何将截图保存到相册的文章少之又少,即使有,也是错误一大片,有的甚至运行后都 ...
- Flutter 中的基本路由
Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航,并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...
- 【Flutter 问题系列第 71 篇】Flutter 中 Uint8List 和 Image 之间的相互转换
这是[Flutter 问题系列第 71 篇],如果觉得有用的话,欢迎关注专栏. Flutter 版本:2.5.0,Dart 版本:2.14 因为最近一直在处理照相机.裁剪图片和 OCR 图片识别的功能 ...
最新文章
- 2021年高考模拟考成绩查询,2021年湖北省普通高考模拟考试成绩查询
- 尚硅谷学习:createElement 方法笔记
- python输入任意多个成绩-Python 实现输入任意多个数,并计算其平均值的例子
- 2018 SaaS应用大会 掀起SaaS应用新浪潮
- 【渝粤题库】陕西师范大学210014幼儿园科学教育作业(高起专)
- 计算机安全评估研究综合,计算机网络信息系统安全评价方法研究
- PL/SQL NOCOPY限制模式
- (26)ESLint一JS代码格式校验
- 18 个惊人的 GitHub 仓库
- 游戏迷看过来 年末促销买个华为平板 M3可畅玩
- LINGO如何使用教育邮箱免费激活
- 最新emoji表情代码大全_微信表情包大全 百度输入法让你斗图斗到爽
- 计算机机械硬盘容量怎么看,win10系统硬盘容量怎么看?一招查看win10硬盘容量的方法...
- kali安装navicat
- 内边距怎么设置html,如何设置内边距
- nls_lang环境变量linux设置,设置NLS_LANG环境变量
- 7月App Store下架逾万款游戏,再度加大版号审核力度
- Loongson_2F/ 3A【tftp+u盘】方式安装系统(开机不认u盘)
- [征询意见]关于博客园与出版社合作出书
- 有什么免费软件可以替代几何画板?