• 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添加内容。

    这是效果图:
    在这里插入图片描述

  • 相关阅读:
    03 Linux下运行Django项目
    02 Linux常用基本命令(二)
    01 Linux常用基本命令(一)
    08 基本数据结构
    07 Deque的应用案例-回文检查
    给select增加placeholder技巧
    易经中人生的六大阶段 :潜、现、惕、跃、飞、亢 你在第几个阶段?
    java 实现傅立叶变换算法 及复数的运算
    java 正则表达式 复习
    关于mysql varchar(N)
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072662.html
Copyright © 2020-2023  润新知