我的应用程序有几个文本字段,我想有一个工具提示,让用户知道每个字段的定义。
我发现了这个答案,但它没有帮助:Flutter工具提示在一次点击。因此,我决定尝试并自己修复它。
以下是如何做到这一点:
首先添加手势检测器作为Tooltip、的子项
工具提示触发模式。手动用于触发模式。
添加onTapDown、on TapUp和onTapCancel,如下
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();
}
万岁,它起作用了。现在,您可以按住图标立即显示工具提示,而不是按住一段时间(工具提示的默认配置(。