Flutter - 检测屏幕上充满其他小部件的点击

标签 flutter dart widget gesture

我正在尝试检测屏幕上的点击。我尝试了多种使用 GestureDetector 的变体但这只会导致应用程序检测 上的点击子元素不是屏幕 .

这是代码:

class QQHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primaryColor: Colors.blueGrey,
      ),
      home: Scaffold(
        appBar: AppBar(
          centerTitle: true,
          title: Text('QuoteQuota'),
        ),
        body: GestureDetector(
          onTap: () => print('Tapped'),
          child: QQBody(),
        ),
      ),
    );
  }
}

class QQBody extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text(
        'Hello, World!'
      ),
    );
  }
}

输出:当我点击“Hello, World!”时打印“tapped”。

预期输出:当我单击屏幕上的任何位置且文本位于中心时打印“tapped”。

我该怎么做呢?

最佳答案

使用 GestureDetector's behavior属性(property)及通行证HitTestBehavior.opaque到它,它可以识别整个屏幕并在您点击屏幕上的任何地方时检测点击。

body: GestureDetector(
          behavior: HitTestBehavior.opaque,
          onTap: () => print('Tapped'),
          child: QQBody(),
        ),

希望这能回答你的问题。

关于Flutter - 检测屏幕上充满其他小部件的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60163123/

相关文章:

flutter - TypeAdapterGenerator :- Missing concrete implementation of 'getter TypeAdapter. typeId 尝试实现缺少的方法

flutter - 我应该使用//或///在 Dart 中进行评论吗?它会使应用程序变慢吗?

小部件只能在 ZLE 处于事件状态时调用

python - tkinter notebook.tab : text (title) displayed incorrectly

android 应用程序小部件动态背景颜色与圆角 android 2.3

flutter - sqflite IN 运算符与 AND 运算符

android - 如何保持flutter应用程序在后台运行(防止被杀死)

firebase - 用于 flutter 的 firebase_admob 0.6.1 的 App ID 问题

Flutter - 容器上的叠加卡片小部件

python - 使用starflut在flutter中导入python模块