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