Flutter學習之動態ListView


import 'package:flutter/material.dart';

void main(){
  runApp(listname(
    item: new List<String>.generate(1000, (i) => "genarate $i")
  ));
}

class listname extends StatelessWidget{
  final List<String> item;
  listname({Key key, @required this.item}):super(key:key);
  @override
  Widget build(BuildContext context){
    return MaterialApp(
      title: "listname",
      home:Scaffold(
        appBar: new AppBar(
          title: new Text("list name"),
          backgroundColor: Colors.pinkAccent,
        ),
        body: new ListView.builder(
          itemCount: item.length,
          itemBuilder: (context,index){
            return new ListTile(
              title: new Text("${item[index]}"),
            ); 
          }
        ),
      ),
    );
  }
}

在大多數情況下,我們看到的網頁的列表都是動態從數據庫里讀出來,而不是一成不變的。
那么我們就需要動態列表,List.builder()這個組件方法。

那么在例子中 我們可以在創建對象時,傳入有列表生成器(我是從python的列表生成器理解的),即

 item: new List<String>.generate(1000, (i) => "genarate $i")

然后在繼承創建類的時候需要接收參數,

final List<String> item;
listname({Key key, @required this.item}):super(key:key);

使用super調用父類的方法(這點也和python一樣)

 body: new ListView.builder(
          itemCount: item.length,
          itemBuilder: (context,index){
            return new ListTile(
              title: new Text("${item[index]}"),
            ); 
          }
        ),

最后使用ListView里的builder方法創建動態列表,在itemCount屬性設置列表長度。itemBuilder添加內容。

這是效果圖:
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM