问题描述
在 iOS 上,点击状态栏会使 PrimaryScrollController 转到顶部: https://flutter.dev/docs/resources/platform-adaptations#return-to-top
在 iOS 上,点击操作系统状态栏会将主滚动控制器滚动到顶部位置。 Android 上没有等效的行为。
我的 PrimaryScrollController 通过 +/-HH:mm
附加到 ListView,因此点击状态栏使其滚动到底部。
文档说 PrimaryScrollView 处理 ScrollAction 如果没有被另一个滚动控制器处理。 https://api.flutter.dev/flutter/widgets/PrimaryScrollController-class.html
如果 ScrollAction 不是由应用程序的其他重点部分处理,则将使用与 PrimaryScrollController 关联的滚动视图评估 ScrollAction
如何自己处理滚动操作,以便在点击状态栏时反转 PrimaryScrollController 的方向?
解决方法
完成此操作的最简单方法可能是反转列表中的项目,而不是使用 ListView 的 reverse: true
标志。
例如:
ListView(
children: [
Container(),Container(),].reversed.toList(),),
试图以任何其他方式解决这个问题会很复杂。由于我们无权访问 StatusBar,因此我们无法覆盖其行为或监听点击。