对不起,我的英语。询问您是否听不懂。
你好!通常,我有一个listView,它是canvas所在的gestureDetector的元素之一。画布会绘制图案。
我需要这种方案来增加和“滚动”。我已经注册了逻辑本身,并且一切正常,但是!如果您开始在画布区域中上下移动,它将不会移动画布,而是在listView中滚动。我在互联网上搜寻了漏洞,但一无所获。粗略地说,我需要当用户在gestureDetector区域中上下移动时,所有事件都发送到该位置,而不是发送到listView(父组件)。
我有这样的结构
ListView (
...
child: GestureDetector(
...
child: ...
child: CustomPaint(...))
)
我试图在我的poseDetector上设置“行为:HitTestBehavior.translucent”,但这没有帮助。
答案 0 :(得分:0)
您可以使用物理属性启用/禁用ListView
的滚动:
bool scrollListEnable = true;
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
physics: scrollListEnable
? AlwaysScrollableScrollPhysics()
: NeverScrollableScrollPhysics(),
children: <Widget>[
Listener(
onPointerMove: (details) {
print("onPointerMove : $details");
if (scrollListEnable) {
setState(() {
scrollListEnable = false;
});
}
},
onPointerUp: (details) {
print("onPointerUp : $details");
setState(() {
scrollListEnable = true;
});
},
child: Container(
height: 200.0,
width: 200.0,
color: Colors.red,
),
)
],
));
}