Как разделить виджеты внутри списка ListView.builder?
Есть ListView.builder в котором установлено значение itemCount: 5. Далее, внутрь ListView.builder я кладу созданный виджет, в котором есть кнопка, отвечающая за вызов функции. Мне необходимо сделать так, чтобы при нажатии на кнопку виджета, функция срабатывала не 5 раз, а 1. Не знаю как отделить виджеты друг от друга. Буду признателен за любую помощь, ссылку на пример.
Ответы (1 шт):
Автор решения: bear22
→ Ссылка
Попробуйте сделать так:
class MyHomePage extends StatefulWidget {
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0; // выбранный индекс
int _counter = 0; // счетчик
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('счетчик: $_counter'),
ListView.builder(
shrinkWrap: true,
itemCount: 5,
itemBuilder: (context, index) {
return RaisedButton(
child: Text('+$index'),
onPressed: () {
_selectedIndex = index;
setState(() {
_counter += _selectedIndex;
});
});
})
],
);
}
}