一次点击/按下时的Flutter工具提示



我的应用程序有几个文本字段,我想有一个工具提示,让用户知道每个字段的定义。

我发现了这个答案,但它没有帮助:Flutter工具提示在一次点击。因此,我决定尝试并自己修复它

以下是如何做到这一点:

首先添加手势检测器作为Tooltip、的子项

工具提示触发模式。手动用于触发模式。

添加onTapDownon TapUponTapCancel,如下

Widget build(BuildContext context) {
final tooltipkey = GlobalKey<TooltipState>();
return Tooltip(
key: tooltipkey,
message: message,
triggerMode: TooltipTriggerMode.manual, // make it manual
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTapDown: (_) => _onTapDown(tooltipkey), // add this
onTapUp: (_) => _onTapUpAndCancel(tooltipkey), // add this
onTapCancel: () => _onTapUpAndCancel(tooltipkey), // add this
child: Icon(EvaIcons.questionMarkCircleOutline),
),
);
}

以及上面代码中显示的辅助功能:

void _onTapDown(GlobalKey<TooltipState> tooltipkey) {
tooltipkey.currentState?.ensureTooltipVisible();
}
void _onTapUpAndCancel(GlobalKey<TooltipState> tooltipkey) {
tooltipkey.currentState?.deactivate();
}

万岁,它起作用了。现在,您可以按住图标立即显示工具提示,而不是按住一段时间(工具提示的默认配置(。

最新更新