一个可滚动的列表组件

不管在哪,列表组件都尤为重要和常用。

首先来看个例子:

import 'package:flutter/material.dart';

void main () => runApp(MyApp());
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context){
return MaterialApp(
title:'zengfp Flutter Demo',
home:Scaffold(
appBar:new AppBar(
title:new Text('ListView Widget')
),
body: ListView.builder(
padding: EdgeInsets.all(8.0),
itemExtent: 20.0,
itemBuilder: (BuildContext context, int index) {
return Text('entry $index');
},
)
),
);
}
}

当用户滚动列表时,ListView中的数据将会无限增长。ListView类提供了一个builder属性,itemBuilder值是一个匿名回调函数, 接受两个参数- BuildContext和行迭代器i。迭代器从0开始, 每调用一次该函数,i就会自增1,对于每个建议的单词对都会执行一次。该模型允许建议的单词对列表在用户滚动时无限增长。itemExtent是个double型,确定滚动区域中列表的数据长度。如果itemExtent确定,则会让列表的渲染更为迅速和有效,让性能体验更好。

上面是个动态的列表,接下来看看固定列表:

body: ListView(
padding: EdgeInsets.all(20.0),
children: <Widget>[
new Center(
child: Text('first line'),
),
new Center(
child: Text('second line'),
),
new Center(
child: Text('third line'),
),
new Center(
child: Text('fourth line'),
)
],
)

上面则让固定的四行文字居中显示。

如果要水平方向的滚动,则需要使用到scrollDirection这个属性了,比如:

body: Center(
child: Container(
height: 200.0,
child: ListView(
scrollDirection: Axis.horizontal,
padding: EdgeInsets.all(20.0),
children: <Widget>[
new Container(
width: 200.0,
color: Colors.red,
), new Container(
width: 200.0,
color: Colors.green,
), new Container(
width: 200.0,
color: Colors.yellow,
), new Container(
width: 200.0,
color: Colors.black, )
],
),
),
)

效果则是:

还有个reverse属性,则是将列表的顺序颠倒。

Flutter常用组件(Widget)解析-ListView的更多相关文章

  1. Flutter常用组件(Widget)解析-Container

    一个组件它往往包含了一些常见的painting, positioning和sizing这样的小部件. Container相当于我们常用的div,在Flutter中用的非常多,现在来看看Containe ...

  2. Flutter常用组件(Widget)解析-Scaffold

    实现一个应用基本的布局结构. 举个栗子: import 'package:flutter/material.dart'; void main() => runApp(MyApp()); clas ...

  3. Flutter常用组件(Widget)解析-Text

    单一格式的文本. 文本组件是以字符串形式显示的单一格式,这个文本字符串可以是多行显示也可以是单独一行显示,主要取决于你的布局限制. 这样式内容是可选择的,如果你省略了,则会使用文本的默认样式来显示.如 ...

  4. Flutter常用组件(Widget)解析-Image

    显示图片的组件 以下是几种加载图片路径方式: Image.asset 加载asset项目资源中的文件 Image.network 加载网络资源图片,通过url加载 Image.file 加载本地文件中 ...

  5. Flutter 常用组件

    无状态组件(StatelessWidget)是不可变的,这意味着它的属性不能改变,所有的值都是最终的. 有状态组件(StatefulWidget)持有的状态可能在Widget生命周期中发生变化.实现一 ...

  6. Flutter 基础组件:Widget简介

    概念 在Flutter中几乎所有的对象都是一个Widget.与原生开发中"控件"不同的是,Flutter中的Widget的概念更广泛,它不仅可以表示UI元素,也可以表示一些功能性的 ...

  7. Ext 常用组件解析

    Ext 常用组件解析 Panel 定义&常用属性 //1.使用initComponent Ext.define('MySecurity.view.resource.ResourcePanel' ...

  8. Ionic 常用组件解析

    Ionic 常用组件解析 $ionicModal(弹出窗口): //创建一个窗口 //此处注意目录的起始位置为app $ionicModal.fromTemplateUrl('app/security ...

  9. Flutter学习笔记(9)--组件Widget

    如需转载,请注明出处:Flutter学习笔记(9)--组件Widget 在Flutter中,所有的显示都是Widget,Widget是一切的基础,我们可以通过修改数据,再用setState设置数据(调 ...

随机推荐

  1. javascript方法--bind()

    bind方法,顾名思义,就是绑定的意思,到底是怎么绑定然后怎么用呢,下面就来说说我对这个方法的理解. 语法 fun.bind(this,arg1,arg2,...) bind()方法会创建一个新的函数 ...

  2. Udacity并行计算课程 CS344 编程作业答案

    Problem set 1 // Homework 1 // Color to Greyscale Conversion //A common way to represent color image ...

  3. SpringBoot整合SpringDataElasticSearch操作ES

    (1).添加starter依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  4. k64 datasheet学习笔记3---Chip Configuration之Clock modules

    1.前言 本文主要讲述chip configure之clock配置相关的内容,主要包含如下三个部分: MCG configuration:Multipurpose clock generator OS ...

  5. PL/SQL第三章 基础查询语句

    --查询所有列 select * from tab_name|view_name; SELECT * FROM emp; SELECT * FROM (SELECT * FROM emp); --查询 ...

  6. Linux查看文件命令

    linux查看日志文件内容命令有 cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写 nl 显示的时候,顺道输出行号! more 一页一页的显示文件内 ...

  7. css怎么让页面上的内容不能被选中

    body{     -webkit-user-select:none;     -moz-user-select:none;     -ms-user-select:none;     user-se ...

  8. vue-router之路由钩子(组件内路由钩子必须在路由组件调用,子组件没用)

    模式 vue-router中的模式选项主要在router实例化的时候进行定义的,如下 const router = new VueRouter({ mode: 'history', // 两种类型hi ...

  9. LeetCode(39):组合总和

    Medium! 题目描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates ...

  10. js----DOM对象(事件)

    节点操作: 创建节点:var ele_a = document.createElement('a'); 添加节点:ele_parent.appendChild(ele_img); 删除节点:ele_p ...