flutter - 如何用 JSON 填充 CupertinoActionSheet 导致颤动
问题描述
我从 JSON 返回多条记录,需要用它们填充 CupertinoActionSheet。飞镖是如何完成的?例如:
CupertinoActionSheetAction(
child: Text('item1'),
onPressed: () {
//print('pressed');
},
},
解决方案
如果我正确理解您的要求,您需要一种方法来生成与CupertinoActionSheetAction
JSON 中的记录一样多的小部件。
代码示例:
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']}"))),
]);
}
}
使用此代码将为CupertinoActionSheetAction
地图中的每个条目生成一个data['items']
。每次您点击其中一个项目时,它都会在控制台中打印其名称。
结果
推荐阅读
- sql - PL/SQL Developer 看不到插入语句的结果
- csv - Apache Spark - 速度故障 read.csv()
- amazon-web-services - AWS 代码工件策略权限无效
- github - Google Cloud Build/GitHub 中的无效参数错误
- javascript - 是否可以在云函数中使用带有通配符的 startWith?
- python - MNIST 上的 PCA 有效,但验证数据的表现非常糟糕
- python - pandas loc 属性的行为与预期不同
- python - 使用 Selenium 搜索元素时指定了非法选择器或找不到 xpath 错误
- javascript - 转换后如何解决上行文本问题 - svg
- mysql - 按在 SQL 中保存为字符串的日期过滤