zoukankan      html  css  js  c++  java
  • 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添加内容。

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

  • 相关阅读:
    perl oneline
    perl修改镜像源地址
    pandas 模块
    django学习
    python- shutil 高级文件操作
    小爬虫爬一个贴吧网页的图片
    Python Tkinter的学习
    python的帮助信息的写法
    python3.5+tornado学习
    LinkedList,ArrayList,HashMap,TreeMap
  • 原文地址:https://www.cnblogs.com/yfc0818/p/11072662.html
Copyright © 2011-2022 走看看