重现步骤
在iOS上,如果你快速向上滑动屏幕,而没有先拖动视图再进行抛掷,那么抛掷滚动速度大约是它应该的一半。
换句话说:
场景1:你触摸并按住一个视图,开始滚动,然后在不抬起手指的情况下,快速向上抛掷。抛掷滚动与预期的速度相匹配,例如 v
。
场景2:开始不触摸屏幕,然后在一个动作中,快速在屏幕上向上滑动(与场景1中的抛掷动作的速度相同,但在启动滚动之前没有先拖动),然后立即再次抬起手指。这将以类似于 v / 2
的速度滚动。
出于某种原因,在抛掷之前启动拖动会将抛掷速度加倍,并使其更好地匹配实际的抛掷速度。
(这假设为了获得实际的预期速度,你已经应用了 #149221 中的修复。否则在两个场景中,抛掷速度都太慢,尽管速度之间的比例仍然保持不变。)
预期结果
无论是否首先拖动而不抛掷,抛掷速度应该是相同的。
实际结果
如果在没有先拖动的情况下快速向上抛掷屏幕,抛掷速度会非常缓慢(大约是它应该的一半)。
代码示例
N/A
截图或视频
N/A
日志
N/A
Flutter Doctor输出
Doctor output
% flutter doctor -v
[✓] Flutter (Channel beta, 3.22.0-0.3.pre, on macOS 14.5 23F79 darwin-x64, locale en-US)
• Flutter version 3.22.0-0.3.pre on channel beta at /Users/luke/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 87b652410d (5 weeks ago), 2024-04-23 21:41:18 -0500
• Engine revision b4bfd45986
• Dart version 3.4.0 (build 3.4.0-282.3.beta)
• DevTools version 2.34.3
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/luke/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15E204a
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2023.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
[✓] VS Code (version 1.89.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.89.20240501
Scan[✓] Connected device (3 available)
• iPhone SE (2nd generation) (mobile) • 00008030-000C38343C23402E • ios • iOS 17.4.1 21E236
• macOS (desktop) • macos • darwin-x64 • macOS 14.5 23F79 darwin-x64
• Chrome (web) • chrome • web-javascript • Google Chrome 125.0.6422.77
[✓] Network resources
• All expected network resources are available.
• No issues found!
3条答案
按热度按时间eqzww0vc1#
场景1:你触摸并按住一个视图,开始滚动,然后在不抬起手指的情况下,快速向上弹起。弹跳滚动与预期的速度相匹配,例如
v
。场景2:开始不触摸屏幕,然后在一个动作中,快速在屏幕上滑动(与场景1中的弹跳动作速度相同,但在首先拖动以启动滚动之前没有拖动),然后立即再次抬起手指。这将以类似于
v / 2
的速度滚动。@lukehutch 我尝试了这些场景,利用了简单的 ListView 代码,我不确定是否可以通过先拖动列表,然后再弹跳来观察报告的行为,我观察到的滚动是平滑的。
RPReplay-Final1716976978.MP4
RPReplay-Final1716977431.MP4
如果上述内容不能代表您描述的情况,请提供您所看到的简短视频,以便进行进一步的操作。
ogq8wdun2#
mkh04yzy3#
感谢您的视频。我会保持这个问题开放,并为团队关注标签。