【发布时间】:2022-01-19 13:26:20
【问题描述】:
我有一个字符串和双打的地图。我正在为每个键创建一个按钮。这很好用(见图)。长按时,我想删除那个键/按钮。我遇到的问题是,无论您按第一个键还是任何其他键,被删除的键始终是最后输入的键。这是一个有趣的项目,如果有更好的方法,我愿意重写所有这些。地图的目标是跟踪该字符串的数量。例如:“铅笔”:2 等
for ( name in materialMap.keys)
Container(
child:ElevatedButton(
child: Text(name),
onPressed: () {},
onLongPress: () {
displayDeleteDialog(context,name );
},
),
),
删除对话框
Future<void> displayDeleteDialog(BuildContext context, String name ) async {
//this brings up an alert dialog to input material
name=name;
return showDialog(
context: context,
builder: (context) {
return AlertDialog(
title: Text('Are you sure you would like to remove material'),
actions: <Widget>[
TextButton(
child: Text('OK'),
onPressed: () {
materialMap.removeWhere((key, value) => key == name);
//materialList.remove(materialList[indexDeleteM]);
Navigator.push(
context,```
[1]: https://i.stack.imgur.com/wQ0lN.png
【问题讨论】: