跳到主要内容

传递手势 TransparentPointer

TransparentPointer是解决"如何在Stack中传递两个小部件之间的所有手势"问题的解决方案。

例如,如果在Container内有一个ElevatedButton和一个GestureDetector,那么在按钮上点击的事件不会传递给后面的手势检测器。使用TransparentPointer,点击事件不会停留在按钮上,而是向上传递给父级,类似于HTML/JS中的事件冒泡。

示例

import flet as ft

def main(page):
page.add(
ft.Stack(
[
ft.GestureDetector(
on_tap=lambda _: print("TAP!"),
multi_tap_touches=3,
on_multi_tap=lambda e: print(
"MULTI TAP:", e.correct_touches
),
on_multi_long_press=lambda _: print("Multi tap long press"),
),
ft.TransparentPointer(ft.Container(
ft.ElevatedButton("Test button"),
padding=50
)),
],
expand=True,
)
)

ft.app(target=main)

属性

content

应该在TransparentPointer中显示的Control