我做了一个Flutter应用程序在Windows和所有作品,但当我试图编译到iOS抛出一个意想不到的错误.在文本字段中检测到“onTap”不是正确的参数。我不知道发生了什么,在windows不返回此错误。无论如何。有人知道如何解决这个问题,什么是正确的方法来检测'onTap'在texfield?
new Container(
color: Colors.blue[300],
child: new Padding(
padding: const EdgeInsets.all(8.0),
child: new Card(
child: new ListTile(
leading: new Icon(Icons.search),
title: new TextField(
onTap: () { <--- The named parameter 'onTap' isn´t defined
Navigator.push(
context,
更新
我试过了,但不起作用
title: new GestureDetector(
child: new TextField(
controller: searchController,
decoration: new InputDecoration(
hintText: 'Buscar parcela', border: InputBorder.none),
)),
onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) => new EstatesPage(
parcela: widget.parcela,
dropdownItem: dropdownSelection)));
},
更新2:溶液
我更新了flutter和brew。错误消失了。
6条答案
按热度按时间p3rjfoxz1#
你可以在
IgnorePointer
小部件 Package 你的文本字段。它会禁用其子节点上的所有手势。这将使手势检测器工作。f3temu5u2#
TextField具有
onTap
属性,如GestureDetector,这使得它非常容易。如果只需要onTap
功能,请将readOnly
设置为true
。对于TextFormField也是如此:
cyvaqqii3#
GestureDetector
不适合我。我用的是InkWell。和它的工作很好
vxbzzdmp4#
当我使用InkWell而不是GestureDetector时,它对我有效
vof42yt15#
使用readonly:文本字段中的点击操作为false
hof1towb6#
我使用InkWell和IgnorePointer,或者使用ReadOnly设置为true的Gesture检测器。这一切都取决于你的目标是什么。
Inkwell为TextField创建触摸交互,而IgnorePointer使TextField不可点击。
类似地,TextField上具有readOnly的Gesture Detector设置为false。
此外,内置的TextField onTap已经处理了触摸。你也可以做
本质上,如果你不想添加任何Inkwell提供的超级效果,GestureDetector是一个不错的选择。