如何检测用户是不是开始垂直滚动 Listview.builder?
Posted
技术标签:
【中文标题】如何检测用户是不是开始垂直滚动 Listview.builder?【英文标题】:How to detect if the user started scrolling the Listview.builder vertically?如何检测用户是否开始垂直滚动 Listview.builder? 【发布时间】:2020-01-10 11:05:54 【问题描述】:如果用户开始滚动,我会尝试隐藏一个容器,以便为列表视图提供更多空间和可见性。我尝试将 Gesturedetector 作为 Listview.builer 的父级并使用它的“onVerticalDragStart”,但没有运气。我是flutter的初学者,希望你能帮助我。谢谢!
【问题讨论】:
要检测仅滚动开始,您可以检查NotificationListener
。 Check this if it helps
【参考方案1】:
您可以使用ScrollController
,但@Sp4Rx 提出了更好的解决方案:NotificationListener<ScrollNotification>
您只需将ListView.builder
包装在具有泛型类型ScrollNotification
的NotificationListener
中即可处理通过滚动ListView
发送的ScrollNotification
s:
NotificationListener<ScrollNotification>(
onNotification: (ScrollNotification notification)
if (notification is ScrollStartNotification)
// Handle your desired action on scroll start here.
// Returning null (or false) to
// "allow the notification to continue to be dispatched to further ancestors".
return null;
,
child: ListView.builder(...),
)
您可以查看ScrollStartNotification
here 的文档。
【讨论】:
谢谢!我已经阅读了文档并最终了解了它的用途。谢谢!以上是关于如何检测用户是不是开始垂直滚动 Listview.builder?的主要内容,如果未能解决你的问题,请参考以下文章
VB 中如何给listview控件定义或设置垂直滚动条(水平滚动条不要)
Flutter 如何使用 ListView 水平和 GridView 垂直滚动屏幕