【发布时间】:2020-07-26 21:28:29
【问题描述】:
我从 JSON 返回多条记录,需要用它们填充 CupertinoActionSheet。飞镖是如何完成的?例如:
CupertinoActionSheetAction(
child: Text('item1'),
onPressed: () {
//print('pressed');
},
},
【问题讨论】:
我从 JSON 返回多条记录,需要用它们填充 CupertinoActionSheet。飞镖是如何完成的?例如:
CupertinoActionSheetAction(
child: Text('item1'),
onPressed: () {
//print('pressed');
},
},
【问题讨论】:
如果我正确理解您的问题,您想要一种方法来生成与 JSON 中的记录一样多的 CupertinoActionSheetAction 小部件。
代码示例:
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
drawer: Drawer(child: ListView(children: [])),
body: MyWidget(),
),
);
}
}
// JSON example
final data = [
{"item_id": "1", "name": "Item 1"},
{"item_id": "2", "name": "Item 2"},
{"item_id": "3", "name": "Item 3"}
];
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoActionSheet(actions: <Widget>[
...data.map((item) => CupertinoActionSheetAction(
child: Text(item['name']),
onPressed: () => print("Pressed ${item['item_id']}"))),
]);
}
}
使用此代码将为映射data['items'] 中的每个条目生成一个CupertinoActionSheetAction。每次您点击其中一个项目时,它都会在控制台中打印其名称。
结果
【讨论】: