如何仅在用户滚动时显示小部件?

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

我想隐藏屏幕上的按钮并在用户开始滚动直到最后一次滚动的5秒后显示它们。

我用SingleChildScrollView包裹了我的GestureDetector,并用onTap回调改变了可见性值,用Visibility小部件隐藏了我的按钮。但是,没有像qsxswpoi上的onScroll这样的事件。

是否有人成功实现了这种效果,或者是否有任何内置动画用于我想要实现的目标?

scroll dart flutter flutter-layout
1个回答
3
投票

你是对的,GestureDetector上没有任何onScroll事件,但有GestureDetector事件,基本相同,有另一个名字。

但是,为此,你实际上并不需要onVerticalDrag。您可以通过GestureDetector收听滚动更改,处理ScrollStartNotificationScrollEndNotification通知,因为您已经在使用NotificationListener

我已经创建了一个小例子来向您展示将生成以下内容:滚动标志以显示按钮设置为SingleChildScrollView,最后,它将重置回true并在5秒后重建树没有按钮如果之间没有更多滚动通知(这就是你在false完成之后但之前没有设置_buttonShowing = false的原因。

Future

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