Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 轻触一次即可显示颤振工具提示_Flutter_Dart_Tooltip - Fatal编程技术网

Flutter 轻触一次即可显示颤振工具提示

Flutter 轻触一次即可显示颤振工具提示,flutter,dart,tooltip,Flutter,Dart,Tooltip,我想在单次点击时显示工具提示,而不是长时间点击 有人能帮我吗 Tooltip( message: e.title, child: Card( semanticContainer: true, child: Padding( padding: EdgeInsets.symmetric( vertical: 12, horizontal: 12 ), child: Center( ch

我想在单次点击时显示工具提示,而不是长时间点击

有人能帮我吗

Tooltip(
  message: e.title,
  child: Card(
    semanticContainer: true,
    child: Padding(
      padding: EdgeInsets.symmetric(
          vertical: 12,
          horizontal: 12
      ),
      child: Center(
        child: Image.network(
          e.icon,
          height: 40,
        ),
      ),
    ),
  ),
)

作为一个选项,您可以创建简单的包装器小部件 完整示例:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Home());
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Home")),
      body: Center(
        child: MyTooltip(
          message: 'message',
          child: Image.network('https://picsum.photos/seed/picsum/200/300', height: 40),
        ),
      ),
    );
  }
}

class MyTooltip extends StatelessWidget {
  final Widget child;
  final String message;

  MyTooltip({@required this.message, @required this.child});

  @override
  Widget build(BuildContext context) {
    final key = GlobalKey<State<Tooltip>>();
    return Tooltip(
      key: key,
      message: message,
      child: GestureDetector(
        behavior: HitTestBehavior.opaque,
        onTap: () => _onTap(key),
        child: child,
      ),
    );
  }

  void _onTap(GlobalKey key) {
    final dynamic tooltip = key.currentState;
    tooltip?.ensureTooltipVisible();
  }
}

在显示o工具提示后,我添加了一个计时器,以编程方式隐藏它。TimerDurationMills:2500,=>工具提示?.dispose;^使用.dispose将不允许用户重新打开工具提示。请改为尝试:。停用