1import 'package:flutter/material.dart'; 2 3void main(){ 4 runApp(listname( 5 item: new List<String>.generate(1000, (i) => "genarate $i") 6 )); 7} 8 9class listname extends StatelessWidget{ 10 final List<String> item; 11 listname({Key key, @required this.item}):super(key:key); 12 @override 13 Widget build(BuildContext context){ 14 return MaterialApp( 15 title: "listname", 16 home:Scaffold( 17 appBar: new AppBar( 18 title: new Text("list name"), 19 backgroundColor: Colors.pinkAccent, 20 ), 21 body: new ListView.builder( 22 itemCount: item.length, 23 itemBuilder: (context,index){ 24 return new ListTile( 25 title: new Text("${item[index]}"), 26 ); 27 } 28 ), 29 ), 30 ); 31 } 32}
在大多数情况下,我们看到的网页的列表都是动态从数据库里读出来,而不是一成不变的。
那么我们就需要动态列表,List.builder()这个组件方法。
那么在例子中 我们可以在创建对象时,传入有列表生成器(我是从python的列表生成器理解的),即
item: new List<String>.generate(1000, (i) => "genarate $i")
然后在继承创建类的时候需要接收参数,
1final List<String> item; 2listname({Key key, @required this.item}):super(key:key);
使用super调用父类的方法(这点也和python一样)
1 body: new ListView.builder( 2 itemCount: item.length, 3 itemBuilder: (context,index){ 4 return new ListTile( 5 title: new Text("${item[index]}"), 6 ); 7 } 8 ),
最后使用ListView里的builder方法创建动态列表,在itemCount属性设置列表长度。itemBuilder添加内容。
这是效果图:
