Flutter 手势检测器不';I don’我不想将自己的大小设置为子容器(除非你给它一个颜色)
所以这个问题让我抓狂,所以任何帮助都将不胜感激:) 我目前有一个自定义的手势检测器,我想根据我给子容器的宽度和高度参数调整它的大小。尽管只有在给子容器指定了颜色(在这种情况下是透明的)时才会这样做。我将在下面发布一些代码和屏幕截图来进一步解释 我尝试过的方法包括使用SizedBox而不是容器,但没有成功。我还试图改变行为的价值观,但这似乎也没有改变任何东西Flutter 手势检测器不';I don’我不想将自己的大小设置为子容器(除非你给它一个颜色),flutter,layout,gesturedetector,Flutter,Layout,Gesturedetector,所以这个问题让我抓狂,所以任何帮助都将不胜感激:) 我目前有一个自定义的手势检测器,我想根据我给子容器的宽度和高度参数调整它的大小。尽管只有在给子容器指定了颜色(在这种情况下是透明的)时才会这样做。我将在下面发布一些代码和屏幕截图来进一步解释 我尝试过的方法包括使用SizedBox而不是容器,但没有成功。我还试图改变行为的价值观,但这似乎也没有改变任何东西 //The params width and height are given values up here ... return Cont
//The params width and height are given values up here
...
return Container(
color: Color(0XFF0000FF), //Blue container which shows the actual size I want the GD to be.
child: ColorFiltered( //Red shows how big the GD actually is.
colorFilter: ColorFilter.mode(Color(0XFFFF0000), BlendMode.hue),
child: RawGestureDetector(
key: gestureKey,
behavior: HitTestBehavior.translucent,
gestures: <Type, GestureRecognizerFactory>{
_SingleDeviceGestureDetector: GestureRecognizerFactoryWithHandlers<
_SingleDeviceGestureDetector>(
() => _SingleDeviceGestureDetector(
//When the pointer touches down on the screen
onHorizontalDragDown: (details) { ... }
onHorizontalDragUpdate: (details) { ... }
onHorizontalDragUp: (details) { ...}
),
(_SingleDeviceGestureDetector instance) {},
),
},
child: Container( //The child container with a transparent colour.
//color: Color(0X00000000),
height: height,
width: width,
child: ...
),
),
),
);
});
}
//此处给出了参数宽度和高度的值
...
返回容器(
color:color(0XFF0000FF),//蓝色容器,显示我希望GD的实际大小。
child:ColorFiltered(//红色显示GD的实际大小。
colorFilter:colorFilter.mode(颜色(0XFFFF0000),BlendMode.hue),
孩子:RawGestureDetector(
键:手势键,
行为:HitTestBehavior.transparent,
手势:{
_SingleDeviceGestureDetector:GestureRecognitzerFactoryWithHandlers<
_SingleDeviceGestureDetector>(
()=>_单个设备消化检测器(
//当指针落在屏幕上时
onHorizontalDragDown:(详细信息){…}
onHorizontalDragUpdate:(详细信息){…}
onHorizontalDragUp:(详细信息){…}
),
(_SingleDeviceGestureDetector实例){},
),
},
child:Container(//具有透明颜色的子容器。
//颜色:颜色(0X00000000),
高度:高度,,
宽度:宽度,
孩子:。。。
),
),
),
);
});
}
当您取消注释子容器(1)中的颜色字段时,手势检测器的大小将与第一个父容器的大小相同(这是我想要的),当您注释掉颜色字段时(2),手势检测器的大小将更小
尽管我有修复程序,但它感觉很“黑”,而且弄清楚它为什么会这样做还是很好的
干杯参见
手势检测器
官方文档:“默认情况下,一个不可见孩子的手势检测器忽略触摸;这种行为可以通过行为来控制。”是的,我刚刚看了一下,谢谢,但没有一种行为似乎能解决问题-延迟孩子只允许孩子接收事件,而且不透明“在其范围内接收事件,并防止后面的目标在视觉上也接收事件”,因此半透明似乎是最好的选择,但似乎无法解决问题。