flutter-List类型的使用


List是Dart的集合类型之一,其实可以把它简单理解为数组。它的声明有几种方式:

  • var myList = List(): 非固定长度的声明。
  • var myList = List(2): 固定长度的声明。
  • var myList= List<String>():固定类型的声明方式。
  • var myList = [1,2,3]: 对List直接赋值。
void main() => runApp(MyApp(
  items: new List.generate(100, (i) => "Item $i")
));

这里使用的是一个List传递,然后直接用List中的generate方法进行生产List里的元素。最后的结果是生产了一个带值的List变量。在main函数的runApp中调用了MyApp类,再使用类的使用传递了一个items参数,并使用generate生成器对items进行赋值。

generate方法传递两个参数,第一个参数是生成的个数,第二个是方法;

final List items;
MyApp({Key key, @required this.items}):super(key: key);

这是一个构造函数,除了Key,增加了一个必传参数,@required就是必传。:super如果父类没有无名无参数的默认构造函数,则子类必须手动调用一个父类构造函数。

这样我们就可以接收一个传递过来的参数了,当然要事先进行声明。

接受了值之后,就可以直接调用动态列表ListView.builder()进行生成了:

import 'package:flutter/material.dart';

void main() => runApp(MyApp(
  items: new List.generate(100, (i) => "Item $i")
));

class MyApp extends StatelessWidget {
  final List items;
   MyApp({Key key, @required this.items}):super(key: key);
  	// This widget is the root of your application.
   @override
   Widget build(BuildContext context) {
    	return MaterialApp(
			title: 'Welcome to Flutter',
			home: Scaffold(
				// appBar: AppBar(
				// 	title: Text('Welcome to Flutter'),
				// ),
				body: new ListView.builder(
					itemCount: items.length,
					itemBuilder: (context,index){
						return new ListTile(
							// title: new Text('tt'),
							title:new Text('${items[index]}'),
						);
					},
				)
			),
    	);
  	}
}

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM