如何在SlidingUpPanel上水平滚动时禁用垂直滚动

问题描述 投票:0回答:1

我正在尝试重现 Google 地图在面板标题下方的按钮行上所做的行为。请参阅此视频。如果你看到我可以垂直滚动,但现在我开始水平滚动这些按钮,垂直滚动就像被禁用了。

我正在使用

SlidingUpPanel
https://pub.dev/packages/sliding_up_panel),但如果有其他小部件可以处理此请求,我可以更改它。

现在我有像这样,有点奇怪,因为当我水平滚动时我也可以垂直滚动。

我尝试过使用

NotificationListener<ScrollNotification>
并检查它是否是水平滚动以禁用
SlidingUpPanel
上的拖动,但它只是在我停止水平滚动后禁用滚动。

另外,我也尝试过将

GestureDetector
onHorizontalDragDown
onHorizontalDragUpdate
onHorizontalDragStart
onHorizontalDragEnd
一起使用。但没有什么真正有效。

提前致谢😀。

flutter dart scroll
1个回答
0
投票

如果(使用

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 中添加指向您的代码的链接,以便我们可以更清楚地理解问题。

© www.soinside.com 2019 - 2024. All rights reserved.