gpt4 book ai didi

flutter - flutter 中的多向滚动

转载 作者:IT王子 更新时间:2023-10-29 06:34:26 27 4
gpt4 key购买 nike

我有网络开发背景,习惯于创建一个同时具有 x 和 y 溢出(允许向任何方向滚动)的元素。我正在努力使用 Flutter 实现相同的功能。

查看文档,我找到了 SingleChildScrollView,但它只允许 Axis.horizo​​ntal 或 Axis.vertical,不能同时使用。

所以我尝试了以下方法:

return SingleChildScrollView( // horizontal scroll widget
scrollDirection: Axis.horizontal,
child: SingleChildScrollView( // vertical scroll widget
scrollDirection: Axis.vertical,
child: ...content of the container etc...
)
);

这适用于 x 和 y,但它不允许对角线滚动。

有没有办法实现对角线滚动,或者是否有更好的 Material 小部件,我完全没有?

谢谢

最佳答案

我设法找到了一个解决方案,尽管它并不完美:

我创建了一个带有 Offset _scrollOffset 的 StatefulWidget,它使用 ClipRect 和 Transform 类型的子对象。转换矩阵 (Matrix4.identity()..translate(_offset.dx, _offset.dy)) 应用于转换。

GestureDetector 分配了一个 onPanUpdate 回调来更新滚动位置。 _scrollOffset += e.delta。如果滚动位置太低或太高,可以将其限制在小部件的边界内。

Animation 和 AnimationController 用于设置滑动速度。 onPanEnd 提供最后一个平移的速度,因此只需根据该速度执行带有快速移动的 Tween。

动画在 TapDown 时停止,因此用户可以停止滚动速度。

这个的主要问题是它不能完美模仿 Android 或 iOS 的滚动速度,尽管我正在努力使用 Flutter 提供的 ScrollSimulation 类让它更好地工作。

关于flutter - flutter 中的多向滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833003/

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