flutter GestureDetector 的 behavior属性

简介: 【8月更文挑战第21天】

有时候点击之后没有反应,原因:点击部分处于空白区域,没有接收到点击事件,处理方式就是添加 behavior 属性值。

GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
},
child: Text("测试"),
),

GestureDetector 的 behavior 属性用于控制手势识别器与其他手势识别器的交互行为。

behavior 用来 解决手势冲突:当多个可交互的部件重叠或在同一区域时,通过设置不同的 behavior 可以确定哪个部件优先响应手势。

常见的 behavior 值

HitTestBehavior.deferToChild:
如果子部件可以处理手势,则将手势检测委托给子部件。
如果子部件不能处理手势,则父部件(包含 GestureDetector 的部件)尝试处理手势。

例如,当有一个 Container 作为 GestureDetector 的子部件,并且 Container 内部还有其他可交互的小部件时,这个设置可以让内部的小部件优先响应手势。

HitTestBehavior.opaque:
此部件以及其所有子部件都会参与命中测试,即无论子部件是否处理手势,父部件(包含 GestureDetector 的部件)总是会尝试处理手势。
这种设置通常用于确保特定部件总是能够响应手势,即使它有子部件也可能响应手势。

HitTestBehavior.translucent:
此部件会参与命中测试,但子部件也会同时参与命中测试,并且子部件的命中测试结果不会被此部件阻止。
这意味着如果子部件响应了手势,父部件也可能响应手势,具体取决于手势的具体情况。

例如,当有一个半透明的部件作为 GestureDetector 的子部件时,可以使用这个设置,使得用户在点击半透明部件时,既可以触发子部件的手势,也可以触发父部件的手势。

相关文章
|
4月前
|
存储 开发者 UED
Flutter笔记:谈Material状态属性-为什么FlatButton等旧版按钮就废弃了
Flutter笔记:谈Material状态属性-为什么FlatButton等旧版按钮就废弃了
94 4
|
6月前
|
容器
flutter GestureDetector 点击空白区域无反应解决办法
flutter GestureDetector 点击空白区域无反应解决办法
153 0
|
6月前
|
Android开发
flutter useRootNavigator属性的作用
flutter useRootNavigator属性的作用
50 0
|
7月前
|
前端开发 开发者
Flutter Canvas 属性详解与实际运用
Flutter Canvas 属性详解与实际运用
169 1
|
7月前
|
Dart 开发者
Flutter笔记 - 关于 fit 属性以及相关知识的总结
Flutter笔记 - 关于 fit 属性以及相关知识的总结
254 0
|
7月前
|
编解码 调度 UED
Flutter笔记:Flutter的WidgetsBinding.instance的window属性
Flutter笔记:Flutter的WidgetsBinding.instance的window属性
236 0
|
7月前
|
存储 API
Flutter中 useRootNavigator 属性的作用
Flutter中 useRootNavigator 属性的作用 在Flutter中,Navigator是管理应用程序页面导航的一个重要组件。Navigator管理着一个栈结构,用于存储应用程序中所有活动页面的历史记录。Flutter提供了许多Navigator相关的API,其中包括 useRootNavigator 属性。
152 0
Flutter的手势识别功能实现GestureDetector
Flutter的手势识别功能实现GestureDetector
|
存储 容器
flutter系列之:做一个修改组件属性的动画
什么是动画呢?动画实际上就是不同的图片连续起来形成的。flutter为我们提供了一个AnimationController来对动画进行详尽的控制,不过直接是用AnimationController是比较复杂的,如果只是对一个widget的属性进行修改,可以做成动画吗? 答案是肯定的,一起来看看吧。
【交互 widget】Flutter GestureDetector
【交互 widget】Flutter GestureDetector
145 0
【交互 widget】Flutter GestureDetector