flutter循环

flutter for循环:

dart 复制代码
Wrap(
     children: <Widget>[
         for (int i = 0; i < (xx.yy.data?.items?.length ?? 0); i++)
            TextButton(onPressed: (){}, child: Text("${xx.yy.data?.items?[i].name.toString()} (${xx.yy.data?.items?[i].connId.toString()}) "))
    ],
);

另一种方法:

dart 复制代码
import 'package:flutter/material.dart';
import './fonts.dart';
import 'package:flutter_basic/res/listData.dart';

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(
        title: const Text('hello flutter'),
      ),
      body: const Myapp(),
    ),
  ));
}

class Myapp extends StatelessWidget {
  const Myapp({Key? key}) : super(key: key);
  
  /// 定义组件
  /// 第一种方法:for循环
  // List<Widget> _initListData() {
  //   List<Widget> tempList = [];
  //   for (var i = 0; i < listData.length; i++) {
  //     tempList.add(ListTile(
  //       leading: Image.network("${listData[i]["imageUrl"]}"),
  //       title: Text("${listData[i]["title"]}"),
  //       subtitle: Text("${listData[i]["author"]}"),
  //     ));
  //   }
  //   return tempList;
  // }


  ///第二种方法:map
  List<Widget> _initListData() {
    var tempList = listData.map((e) {
      return ListTile(
        leading: Image.network("${e["imageUrl"]}"),
        title: Text("${e["title"]}"),
        subtitle: Text("${e["author"]}"),
      );
    });
    return tempList.toList();
  }

  @override
  Widget build(BuildContext context) {
    print(listData);
    return ListView(
      children: _initListData(),///使用
    );
  }
}

使用ListView提供的builder构造函数来生成一个动态列表,在builder里需要传人两个必传参数itemCount、itemBuilder

dart 复制代码
class Myapp extends StatelessWidget {
  const Myapp({Key? key}) : super(key: key);

  ///使用ListView提供的builder构造函数来生成一个动态列表
  /// 在builder里需要传人两个必传参数itemCount、itemBuilder

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
        itemCount: listData.length,
        itemBuilder: (context, index) {
          return ListTile(
           leading: Image.network("${listData[index]["imageUrl"]}"),
            title: Text("${listData[index]["title"]}"),
            subtitle: Text("${listData[index]["author"]}"),
          );
        });
  }
}
相关推荐
Codigger官方3 分钟前
Linux 基金会牵头成立 React 基金会:前端开源生态迎来里程碑式变革
linux·前端·react.js
90后的晨仔4 分钟前
🌟 Vue3 + Element Plus 表格开发实战:从数据映射到 UI 优化的五大技巧
前端
ObjectX前端实验室1 小时前
【图形编辑器架构】🧠 Figma 风格智能选择工具实现原理【猜测】
前端·react.js
天桥下的卖艺者1 小时前
R语言基于shiny开发随机森林预测模型交互式 Web 应用程序(应用程序)
前端·随机森林·r语言·shiny
技术钱1 小时前
vue3 两份json数据对比不同的页面给于颜色标识
前端·vue.js·json
路很长OoO1 小时前
Flutter 插件开发实战:桥接原生 SDK
前端·flutter·harmonyos
技术钱1 小时前
react+andDesign+vite+ts从零搭建后台管理系统(三)-Layout布局
javascript·react.js·ecmascript
开水好喝2 小时前
Code Coverage Part I
前端
DoraBigHead2 小时前
🧭 React 理念:让时间屈服于 UI —— 从同步到可中断的演化之路
前端·javascript·面试
千码君20162 小时前
React Native:发现默认参数children【特殊的prop】
javascript·react native·ecmascript·react·组件树