gpt4 book ai didi

flutter - 如何使 InkWell `onLongPress()` 覆盖其内部 TextField 上的点击?

转载 作者:行者123 更新时间:2023-12-05 01:58:08 26 4
gpt4 key购买 nike

我在 InkWell 中有一个 TextField,带有一个 onLongPress() 回调。问题是,尽管事实上当长按 TextField 时,我在 InkWell 上看到了涟漪效应,但是 onLongPress()长按时间过后不运行。它只会让我进入编辑文本。当按下 Card 的底部时,一切正常。

简而言之:点击我想进入 TextField 编辑。长按时我想触发 onLongPress(),而不是 TextField,即使我按下它也是如此。

我该怎么做?谢谢。

InkWell(
onLongPress: () {
// do stuff
}
child: ListTile(
title: TextField(),
),
),

screenshot

最佳答案

您可以使用 AbsorbPointer忽略 TextField 手势识别器的小部件:

InkWell(
onLongPress: () {
print('onLongPress');
},
child: AbsorbPointer(
child: ListTile(
title: TextField(),
),
),
)

要在单击 TextField 时仍然启用编辑,您可以像这样使用 FocusNode:

InkWell(
onLongPress: () {
print('onLongPress');
},
onTap: () => node.requestFocus(),
child: AbsorbPointer(
child: ListTile(
title: TextField(
focusNode: node,
controller: textController,
),
),
),
)

关于flutter - 如何使 InkWell `onLongPress()` 覆盖其内部 TextField 上的点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68692404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com