Flutter学习笔记(12)--列表组件

如需转载,请注明出处:Flutter学习笔记(12)--列表组件

 在日常的产品项目需求中,经常会有列表展示类的需求,在Android中常用的做法是收集数据源,然后创建列表适配器Adapter,将数据源传递到Adapter中,最终进行列表数据的展示,那么在Flutter中如何处理列表数据呢?

在Flutter中,用ListView来显示列表项,其支持垂直和水平方向展示,通过过一个属性我们就可以控制其方向,列表有以下分类:

  1.水平的列表

  2.垂直的列表

  3.数据量非常大的列表

  4.矩阵式的列表

垂直列表组件

ListView组件属性及描述 属性名   类型   默认值   说明  
ScrollDirection   Axis   Axis.vertical   列表的排列方向,Axis.vertical为垂直方向,Axis.horizontal为水平方向  
padding   EdgeInsetsGeometry       列表内部的空白区域,如果有child的话,child位于padding内部  
reverse   bool   false   组件排列反向  
children   List<Widget>       列表元素,注意List元素全部为Widget类型  

 

 

 

 

 

 

 

 

 

 

 

示例代码如下:

import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; void main() => runApp(DemoApp()); class DemoApp extends StatelessWidget{ @override Widget build(BuildContext context) { return new MaterialApp( title: 'ListView Demo', home: new ListViewDemo(), ); } } class ListViewDemo extends StatelessWidget { @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: Text('ListView Dmoe'), leading: new Icon(Icons.menu,size: 40,color: Colors.white,), actions: <Widget>[ new IconButton(icon: Icon(Icons.search), onPressed: (){ Fluttertoast.showToast(msg: '点击了搜索按钮',toastLength: Toast.LENGTH_LONG,textColor: Colors.white,gravity: ToastGravity.BOTTOM); }) ], ), body: new ListView( // padding: new EdgeInsets.symmetric(vertical: 10,horizontal: 10),//给子元素设置水平和垂直方向的padding padding: new EdgeInsets.only(left: 10,top: 0,right: 10,bottom: 0),//给子元素设置左、上、右、下的padding children: <Widget>[ //数据源 ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第一条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第二条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第三条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第四条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第五条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第六条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第七条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第八条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第九条数据'),), ListTile(leading: new Icon(Icons.add_circle_outline),title: new Text('第十条数据'),), ], ), ); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzwjx.html