Flutter中如何在GestureDetector的onTap中获取点击文本内容?
解决Flutter中GestureDetector点击获取Text文本值的问题
问题出在GestureDetector的onTap回调本身没有参数,所以你写的onTap: (value) {print(value);}自然无法获取到值。正确的做法是在遍历列表时,直接把当前元素绑定到回调里:
完整实现代码
List<String> myNumbers = ['1', '2', '3']; Widget clickArea() { return Wrap( children: myNumbers.map((number) { return GestureDetector( onTap: () { // 直接使用当前遍历到的number变量 print(number); }, child: Text(number), ); }).toList(), ); }
原理说明
在map遍历myNumbers的过程中,每个GestureDetector的onTap回调都会捕获当前循环的number变量,当点击对应的Text组件时,就会触发回调并打印该元素的文本值。
这种方式是最简洁直接的,不需要额外通过Key或者上下文查找组件内容。
内容的提问来源于stack exchange,提问作者Stanislav Bondarenko
相关产品推荐
相关产品推荐

