Как удалить список элементов при нажатии кнопки всплывающего меню?однако мой список и всплывающее меню находятся в двух отдельных файлах.Мне нужно знать, какой из них я удаляю, в зависимости от того, какой элемент списка нажат.
pop_up_menu.dart:
import 'package:flutter/material.dart';
class PopUpMenu extends StatelessWidget {
void showMenuSelection(String value) {
print("pressed");
}
@override
Widget build(BuildContext context) {
return PopupMenuButton<String>(
padding: EdgeInsets.zero,
icon: Icon(Icons.more_vert),
onSelected: showMenuSelection,
itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
const PopupMenuItem<String>(
value: 'Create another',
child: ListTile(
leading: Icon(Icons.add), title: Text('Create another'))),
const PopupMenuItem<String>(
value: 'Delete',
child: ListTile(
leading: Icon(Icons.delete), title: Text('Delete')))
],
);
}
}
Поэтому я импортировал это всплывающее меню в list_tile.dart при каждом нажатии.на кнопку всплывающего меню «Удалить», мне нужно удалить выбранный элемент списка, который нажал всплывающее меню
List_tile.dart:
import 'package:flutter/material.dart';
import '../pop_up_menu/pop_up_menu.dart';
var levelsData = [];
class ListTile extends StatefulWidget {
@override
ListTileState createState() => new ListTileState();
}
class ListTileState extends State<ListTile> {
@override
Widget build(BuildContext context) {
return ListView.builder(
itemBuilder: (BuildContext context, int index) => Card(
child: SingleChildScrollView(
child: StuffInTiles(
levelsData[index]['user_id'],
levelsData[index]['price'],
),
),
),
itemCount: levelsData.length,
);
}
}
class StuffInTiles extends StatelessWidget {
final String userId;
final double price;
StuffInTiles(this.userId, this.price);
@override
Widget build(BuildContext context) {
List<dynamic> _getChildren() {
List<Widget> children = [];
levelsData.forEach(
(element) {
if (price.toString() == element['price'].toString()) {
children.add(ListTile(
title: Text("@" + element['price'].toString(),
style: TextStyle(color: Colors.lightGreen)),
subtitle: Text(
"Created on 01 Jun 2018 at 06:24AM \n when price was " +
element['price'].toString()),
trailing: PopUpMenu()));
}
},
);
return children;
}
}
}
Таким образом, каждый элемент в этомсписок имеет всплывающее меню с опцией удаления в этом меню.Когда нажата опция удаления, она должна удалить элемент, который ее вызвал.
Пример: когда нажата кнопка удаления всплывающего меню для пользователя user2, она должна удалить пользователя user2.