Flutter 中,如果一个 widget 的尺寸超过了它所在的父 widget 的尺寸,就会发生溢出现象。在这种情况下,如果有一个带有事件监听的 widget,例如 MouseRegion,那么它的事件可能会无法触发。

解决这个问题的方法是使用 OverflowBox 来包裹溢出的 widget,并将 alignment 属性设置为 Alignment.topLeft。这样,溢出的部分就会向左上角对齐,不会遮挡其他组件。同时,由于 MouseRegion 可以触发溢出部分的事件的,所以它也会正常工作。

示例代码:

OverflowBox(
  alignment: Alignment.topLeft,
  child: SizedBox(
    width: 200,
    height: 300,
    child: Container(
      color: Colors.red,
      child: MouseRegion(
        onHover: (event) {
          print('hover');
        },
        child: Text('Overflow Example'),
      ),
    ),
  ),
),
Flutter 溢出后 MouseRegion 失效解决方案

原文地址: https://www.cveoy.top/t/topic/mGG8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录