轻按时Flutter显示工具提示,长按时执行其他功能

guz6ccqo  于 2022-11-17  发布在  Flutter
关注(0)|答案(2)|浏览(187)

我想在点击手势检测器时显示工具提示,长按GestureDetector时执行不同的操作,如何实现?我已经编写了一些相关代码,但长按时仍显示工具提示,而不是访问我的selectDate()功能
这是我当前代码:

GestureDetector(
  onTap: () {
    final dynamic tooltip = _toolTipKey.currentState;
    tooltip.ensureTooltipVisible();
  },
  onLongPress: () {
    if (widget.ticketData['status'] == 'active') {
      showDialog(
        context: context,
        builder: (context) {
          return ReusableConfirmationDialog(
            titleText: 'changeDueDateTitle'.tr(),
            contentText: 'changeDueDateDesc'.tr(),
            declineButtonText: 'cancel'.tr(),
            confirmButtonText: 'change'.tr(),
            onDecline: () {
              Navigator.pop(context);
            },
            onConfirm: () {
              DevMode.log('start changing the due date');
              _selectDate(context);
            },
          );
        },
      );
    }
  },
  child: Tooltip(
    key: _toolTipKey,
    message: "Hello",
    child: Container(
      padding: const EdgeInsets.symmetric(horizontal: 11, vertical: 5),
      decoration: BoxDecoration(
        color: formBackgroundColor,
        borderRadius: BorderRadius.circular(15),
      ),
      child: Row(
        children: [
          Image.asset(
            'assets/logo/calendar.png',
            width: 20,
            height: 20,
          ),
          const SizedBox(width: 5),
        ],
      ),
    ),
  ),
),
jogvjijk

jogvjijk1#

使用triggerMode: TooltipTriggerMode.manual和键显示工具提示
第一个
关于Tooltip的更多信息

bfnvny8b

bfnvny8b2#

在代码中创建此函数
这行triggerMode: TooltipTriggerMode.tap,将允许您在单击时显示工具提示。

Widget customToolTip({String? text}) {
      return Tooltip(
        message: text ?? "",
        triggerMode: TooltipTriggerMode.tap,
        showDuration: const Duration(seconds: 30),
        child: const Icon(Icons.help_outline, color: AppColors.buttonColor, size: 20),
      );
}

相关问题