Прослушивание целевого события во флаттере - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу реализовать функцию удаления для повторяющегося списка текстовых виджетов, чтобы при нажатии на любой текстовый виджет тот конкретный текстовый виджет, на который я щелкал, удалялся. Можно ли каким-то образом прослушать целевое событие во флаттере, чтобы узнать, на что нажал пользователь?

Ответы [ 3 ]

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

Также вы можете использовать GestureDetector виджет. Вы можете найти пример и дополнительную информацию здесь .

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

Это пример того, как вы это сделаете.

//initialize outside build
List<String> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];

Row(
          children: <Widget>[
            ...letters
                .map(
                  (letter) => GestureDetector(
                    child: Container(
                      margin: EdgeInsets.all(8.0),
                      padding: EdgeInsets.all(8.0),
                      decoration: BoxDecoration(
                          border: Border.all(color: Colors.amber)),
                      child: Text(
                        letter,
                        style: TextStyle(fontSize: 20),
                      ),
                    ),
                    onTap: () {
                      int index =
                          letters.indexWhere((String alpha) => alpha == letter);
                      setState(() {
                        letters.removeAt(index);
                      });
                    },
                  ),
                )
                .toList()
          ],
        ),

Дайте мне знать, если это работает для вас

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

оберните текст в InkWell:

InkWell(
      child: Text('some text'),
      onTap: (){
        //handle press event
      },
    )
...