我已经创建了一个SingleChildScrollView
。手势检测器有一个父容器(红色)和一个子容器(蓝色)。滚动视图在父级上有效,但在子级上无效。我该怎么办?谢谢你的帮助。这就是代码。
body: SingleChildScrollView(
child: Column(
children: [
Container(
color: Colors.redAccent[200],
height: 1000.0,
width: 500.0,
alignment: Alignment.center,
),
GestureDetector(
onVerticalDragUpdate: (DragUpdateDetails details) {
print("Start");
print(details.localPosition);
},
child: Container(
color: Colors.blueAccent[200],
height: 10000.0,
width: 500.0,
alignment: Alignment.center,
),
)
],
),
)
发布于 2020-11-20 15:16:40
尝试使用SingleChildScrollView包装GestureDetector,如下所示。
body: SingleChildScrollView(
child: Column(
children: [
Container(
color: Colors.redAccent[200],
height: 1000.0,
width: 500.0,
alignment: Alignment.center,
),
SingleChildScrollView(
child: GestureDetector(
onVerticalDragUpdate: (DragUpdateDetails details) {
print("Start");
print(details.localPosition);
},
child: Container(
color: Colors.blueAccent[200],
height: 10000.0,
width: 500.0,
alignment: Alignment.center,
),
),
),
],
),
);
发布于 2020-11-20 15:55:42
onVerticalDragUpdate
会阻止SingleChildScrollView
滚动,因为它只检测垂直拖动更新,当您按住它拖动小部件时,它会忽略ScrollView并监听小部件的可拖动更新。运行以下代码。它现在对我起作用了。
body: SingleChildScrollView(
child: Column(
children: [
Container(
color: Colors.redAccent[200],
height: 1000.0,
width: 500.0,
alignment: Alignment.center,
),
GestureDetector(
// onVerticalDragUpdate: (DragUpdateDetails details) {
// print("Start");
// print(details.localPosition);
// },
child: Container(
color: Colors.blueAccent[200],
height: 1000.0,
width: 500.0,
alignment: Alignment.center,
),
)
],
),
)
https://stackoverflow.com/questions/64924580
复制相似问题