gpt4 book ai didi

flutter - DraggableScrollableSheet 在拖动时不给出工作表的当前位置

转载 作者:行者123 更新时间:2023-12-03 18:15:38 30 4
gpt4 key购买 nike

在 flutter 中,我们有一个小部件 DraggableScrollableSheet .现在我想要 child 在拖动时的当前位置或当前大小。目前无法获得该值。它在其 builder 方法中提供了一个 ScrollController ,但这是在列表滚动时而不是在拖动时使用的。那么还有另一种方法可以跟踪列表的当前拖动位置吗?

我尝试添加 NotificationListener ,但这只给我 dragstartnofification 和 dragendnotification ,而没有给 dragupdate :

DraggableScrollableSheet(
initialChildSize: .70,
minChildSize: .70,
builder:
(BuildContext context, ScrollController scrollcontroller) {
return NotificationListener(
onNotification: (notification) {
print("$notification");
},
child: Container(
child: ListView.builder(
controller: scrollcontroller,
itemCount: widget.songs.length,
itemBuilder: (BuildContext context, int index) {
return buildSongRow(widget.songs[index]);
}),
),
);
}),

最佳答案

我找到了解决方案。 Flutter 团队在 Flutter v1.7.3 中更新了 ScrollableDraggableSheet 类。他们添加了一个名为 DraggableScrollableNotification 的类,您可以在拖动时收听该类以获取子项的当前扩展。

NotificationListener<DraggableScrollableNotification>(
onNotification: (notification) {

print("${notification.extent}");
},
child: DraggableScrollableSheet(
initialChildSize: .70,
minChildSize: .70,
builder:
(BuildContext context, ScrollController scrollcontroller) {
return Container(
child: ListView.builder(
controller: scrollcontroller,
itemCount: widget.songs.length,
itemBuilder: (BuildContext context, int index) {
return buildSongRow(widget.songs[index]);
}),
);
}),
)

在上面的示例中 通知范围拖动时将为您提供 child 的当前范围(位置)。

Note: this is currently in the master channel and not in the stable channel. Switch to the master channel by running flutter channel master and then flutter upgrade to make it work for now.

关于flutter - DraggableScrollableSheet 在拖动时不给出工作表的当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56506540/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com