в этом примере я показываю, как вы можете легко это сделать, создав список с именами элементов и функцией, которая возвращает виджет:
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final List<String> items = ['item1', 'item2', 'item3']; //creating a list of the title of the items
Widget itemWidget({String text, VoidCallback onPressed}) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row( //widget that will be called on the ListView
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Icon(Icons.account_circle, size: 50,),
Text(text, style: TextStyle(fontSize: 20),), //receiving the text
IconButton(
icon: Icon(Icons.delete),
onPressed: onPressed, //receiving the function
),
],
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return itemWidget(
text: items[index],
onPressed: () {
setState(() {
items.removeAt(index); //remove the item at the current index
});
},
);
},
),
);
}
}
Пользовательский интерфейс: