Как получить индекс нажатой кнопки внутри элемента списка в Flutter? - PullRequest
0 голосов
/ 05 апреля 2020

Скриншот приложения Посмотрите на кнопку удаления значка на скриншоте. Я хочу получить индекс нажатой кнопки, чтобы удалить выбранный элемент списка. Что мне делать? Спасибо за помощь!

1 Ответ

0 голосов
/ 05 апреля 2020

в этом примере я показываю, как вы можете легко это сделать, создав список с именами элементов и функцией, которая возвращает виджет:

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
              });
            },
          );
        },
      ),
    );
  }
} 

Пользовательский интерфейс:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...