我正在尝试重现 Google 地图在面板标题下方的按钮行上所做的行为。请参阅此视频。如果你看到我可以垂直滚动,但现在我开始水平滚动这些按钮,垂直滚动就像被禁用了。
我正在使用
SlidingUpPanel
(https://pub.dev/packages/sliding_up_panel),但如果有其他小部件可以处理此请求,我可以更改它。
现在我有像这样,有点奇怪,因为当我水平滚动时我也可以垂直滚动。
我尝试过使用
NotificationListener<ScrollNotification>
并检查它是否是水平滚动以禁用SlidingUpPanel
上的拖动,但它只是在我停止水平滚动后禁用滚动。
另外,我也尝试过将
GestureDetector
与 onHorizontalDragDown
、onHorizontalDragUpdate
、onHorizontalDragStart
、onHorizontalDragEnd
一起使用。但没有什么真正有效。
提前致谢😀。
如果(使用
NotificationListener<ScrollNotification>
):
那么我认为问题就在那里,尝试在停止水平滚动后重新启用滚动。
像这样:
NotificationListener<ScrollNotification>(
onNotification: (notification) {
if (notification is ScrollUpdateNotification) {
if (notification.scrollDirection
== ScrollDirection.horizontal) {
panelController.isDraggable = false;
} else {
panelController.isDraggable = true;
}
}
return true;
},
如果您已经尝试过,请在 Git Hub 中添加指向您的代码的链接,以便我们可以更清楚地理解问题。