有什么方法可以使GestureDetector覆盖所有子GestureDetectors的功能?
我有一个复杂的Widget,我希望能够轻松地从高级别覆盖其所有行为。例如,将自由用户锁定在功能之外。
你可以改变HitTestBehavior behavior的GestureDetector,以HitTestBehavior.opaque
GestureDetector(
behavior: HitTestBehavior.opaque,
...
)
Run Code Online (Sandbox Code Playgroud)
默认情况下,它使用HitTestBehavior.deferToChild.
要暂时禁用所有子手势检测器,请使用IgnorePointer小部件:
@override
Widget build(BuildContext context) {
bool ignoreChildGestures = true;
return GestureDetector(
onTap: () {
print('parent tapped');
},
child: IgnorePointer(
ignoring: ignoreChildGestures,
child: GestureDetector(
onTapDown: (details) {
// won't be called when ignoring is set to true
print('child tap down!');
},
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |