flutter for循环:
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()}) "))
],
);
另一种方法:
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 _initLi服务器托管网stData() {
// List tempList = [];
// for (var i = 0; i
// tempList.add(ListTile(
// leading: Image.network("${listData[i]["imageUrl服务器托管网"]}"),
// title: Text("${listData[i]["title"]}"),
// subtitle: Text("${listData[i]["author"]}"),
// ));
// }
// return tempList;
// }
///第二种方法:map
ListWidget> _initListData() {
var tempList = listData.map((e) {
return ListTile(
leading: Image.network("${e["imageUrl"]}"),
title: Text("${e["title"]}"),
subtitle: Text("${e["author"]}"),
);
});
return tempList.toList();
}
Widget build(BuildContext context) {
print(listData);
return ListView(
children: _initListData(),///使用
);
}
}
使用ListView提供的builder构造函数来生成一个动态列表,在builder里需要传人两个必传参数itemCount、itemBuilder
class Myapp extends StatelessWidget {
const Myapp({Key? key}) : super(key: key);
///使用ListView提供的builder构造函数来生成一个动态列表
/// 在builder里需要传人两个必传参数itemCount、itemBuilder
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"]}"),
);
});
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 联合类型(Union Types)、交叉类型(Intersection Types)有什么区别?
联合类型(Union Types)和交叉类型(Intersection Types)是 TypeScript 中的两种类型操作符,它们具有不同的行为和用途。 联合类型(Union Types): 用竖线 | 分隔多个类型,表示一个值可以是其中的任意一种类型之一…