我有一个带有回调TextField的内部。问题是,尽管事实上,即使长按,我也会看到 上的连锁反应,但在长按时间过去后, 不会运行。它只会让我编辑文本。当按下 的底部时,一切运行正常。InkWellonLongPress()TextFieldInkWellonLongPress()Card
简而言之:点击后我想开始TextField编辑。长按时,我想触发onLongPress(),而不是TextField,即使我按下它。
我该怎么做呢?谢谢。
InkWell(
onLongPress: () {
// do stuff
}
child: ListTile(
title: TextField(),
),
),
Run Code Online (Sandbox Code Playgroud)
您可以使用AbsorbPointer小部件来忽略TextField手势识别器:
InkWell(
onLongPress: () {
print('onLongPress');
},
child: AbsorbPointer(
child: ListTile(
title: TextField(),
),
),
)
Run Code Online (Sandbox Code Playgroud)
TextField要在单击时仍然启用编辑,您可以使用FocusNode如下所示:
InkWell(
onLongPress: () {
print('onLongPress');
},
onTap: () => node.requestFocus(),
child: AbsorbPointer(
child: ListTile(
title: TextField(
focusNode: node,
controller: textController,
),
),
),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |