flutter / flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond
https://flutter.dev
BSD 3-Clause "New" or "Revised" License
166.98k stars 27.68k forks source link

[Desktop] Directional focus traversal stops working after scrolling ListView #91741

Open jpnurmi opened 3 years ago

jpnurmi commented 3 years ago

Directional focus traversal stops working when a focused item is scrolled outside the list view's cache extent.

Steps to Reproduce

  1. Run the attached example
  2. Press TAB to move focus to the list view
  3. Press up/down arrows to move focus around
  4. Press page up/down a couple of times
  5. Press up/down arrows again

Expected results:

The list view is scrolled back to the focused item and focus traversal continues from where it was.

Actual results:

Directional focus traversal no longer works. Nothing happens.

Code sample ```dart import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: MyHomePage())); } class MyHomePage extends StatefulWidget { const MyHomePage({Key? key}) : super(key: key); @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { @override void initState() { super.initState(); FocusManager.instance.addListener(() { print('focus changed ${FocusManager.instance.primaryFocus}'); }); } @override Widget build(BuildContext context) { return Scaffold( body: SizedBox.expand( child: ListView.builder( itemBuilder: (BuildContext context, int index) { return ListTile( onTap: () {}, title: Text(index.toString()), ); }, ), ), ); } } ```
Logs ``` [ +37 ms] executing: uname -m [ +19 ms] Exit code 0 from: uname -m [ ] x86_64 [ +3 ms] executing: [/home/jpnurmi/Flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H [ +5 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H [ ] 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] executing: [/home/jpnurmi/Flutter/] git tag --points-at 5fd1d36ecc6750302beebf73683d4a6977603abe [ +11 ms] Exit code 0 from: git tag --points-at 5fd1d36ecc6750302beebf73683d4a6977603abe [ +1 ms] executing: [/home/jpnurmi/Flutter/] git describe --match *.*.* --long --tags 5fd1d36ecc6750302beebf73683d4a6977603abe [ +28 ms] Exit code 0 from: git describe --match *.*.* --long --tags 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] 2.6.0-11.0.pre-322-g5fd1d36ecc [ +5 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref --symbolic @{u} [ +5 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u} [ ] upstream/master [ ] executing: [/home/jpnurmi/Flutter/] git ls-remote --get-url upstream [ +5 ms] Exit code 0 from: git ls-remote --get-url upstream [ ] https://github.com/flutter/flutter.git [ +48 ms] Unable to locate an Android SDK. [ +4 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref HEAD [ +4 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD [ ] master [ +33 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ +1 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ +41 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ +41 ms] Skipping pub get: version match. [ +65 ms] Generating /home/jpnurmi/Temp/directional_focus_traversal/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java [ +56 ms] Initializing file store [ +5 ms] Skipping target: gen_localizations [ +4 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents: /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/package_config_subset} [ +14 ms] gen_dart_plugin_registrant: Complete [ ] Skipping target: _composite [ +1 ms] complete [ +3 ms] Launching lib/main.dart on Linux in debug mode... [ +3 ms] /home/jpnurmi/Flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/jpnurmi/Flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root /home/jpnurmi/Flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names --experimental-emit-debug-metadata -DFLUTTER_WEB_AUTO_DETECT=true --output-dill /tmp/flutter_tools.RAFSRT/flutter_tool.UEEZOQ/app.dill --packages /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill --flutter-widget-cache --enable-experiment=alternative-invalidation-strategy [ +16 ms] Building Linux application... [ +17 ms] <- compile package:directional_focus_traversal/main.dart [ +1 ms] executing: [build/linux/x64/debug/] cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DFLUTTER_TARGET_PLATFORM=linux-x64 /home/jpnurmi/Temp/directional_focus_traversal/linux [ +40 ms] -- Configuring done [ +5 ms] -- Generating done [ +19 ms] -- Build files have been written to: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug [ +3 ms] executing: ninja -C build/linux/x64/debug install [ +8 ms] ninja: Entering directory `build/linux/x64/debug' [+7926 ms] [1/5] Generating /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/libflutter_linux_gtk.so, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_engine.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_method_call.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_method_response.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_value.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/fl_view.h, /home/jpnurmi/Temp/directional_focus_traversal/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_ [ +2 ms] [ +40 ms] executing: uname -m [ ] [ +20 ms] Exit code 0 from: uname -m [ ] [ ] x86_64 [ ] [ +3 ms] executing: [/home/jpnurmi/Flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H [ ] [ +4 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H [ ] [ ] 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] [ ] executing: [/home/jpnurmi/Flutter/] git tag --points-at 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] [ +10 ms] Exit code 0 from: git tag --points-at 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] [ +1 ms] executing: [/home/jpnurmi/Flutter/] git describe --match *.*.* --long --tags 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] [ +25 ms] Exit code 0 from: git describe --match *.*.* --long --tags 5fd1d36ecc6750302beebf73683d4a6977603abe [ ] [ ] 2.6.0-11.0.pre-322-g5fd1d36ecc [ ] [ +5 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref --symbolic @{u} [ ] [ +3 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u} [ ] [ ] upstream/master [ ] [ ] executing: [/home/jpnurmi/Flutter/] git ls-remote --get-url upstream [ ] [ +3 ms] Exit code 0 from: git ls-remote --get-url upstream [ ] [ ] https://github.com/flutter/flutter.git [ ] [ +31 ms] Unable to locate an Android SDK. [ ] [ +4 ms] executing: [/home/jpnurmi/Flutter/] git rev-parse --abbrev-ref HEAD [ ] [ +3 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD [ ] [ ] master [ ] [ +34 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] [ +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ ] [ +56 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update. [ ] [ ] Artifact Instance of 'GradleWrapper' is not required, skipping update. [ ] [ ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterSdk' is not required, skipping update. [ ] [ ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'WindowsUwpEngineArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update. [ ] [ +1 ms] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update. [ ] [ ] Artifact Instance of 'PubDependencies' is not required, skipping update. [ ] [ +22 ms] Initializing file store [ ] [ +12 ms] Skipping target: gen_localizations [ ] [ +9 ms] gen_dart_plugin_registrant: Starting due to {InvalidatedReasonKind.inputChanged: The following inputs have updated contents: /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/package_config_subset} [ ] [ +3 ms] unpack_linux: Starting due to {} [ ] [ +50 ms] unpack_linux: Complete [ ] [ +387 ms] gen_dart_plugin_registrant: Complete [ ] [ +1 ms] kernel_snapshot: Starting due to {} [ ] [ +7 ms] /home/jpnurmi/Flutter/bin/cache/dart-sdk/bin/dart --disable-dart-dev /home/jpnurmi/Flutter/bin/cache/artifacts/engine/linux-x64/frontend_server.dart.snapshot --sdk-root /home/jpnurmi/Flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --target=flutter --no-print-incremental-dependencies -DFLUTTER_WEB_AUTO_DETECT=true -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --packages /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/package_config.json --output-dill /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/flutter_build/ec663e4143ebb49d3744594ea9d0e228/app.dill --depfile /home/jpnurmi/Temp/directional_focus_traversal/.dart_tool/flutter_build/ec663e4143ebb49d3744594ea9d0e228/kernel_snapshot.d package:directional_focus_traversal/main.dart [ ] [+5943 ms] kernel_snapshot: Complete [ ] [ +288 ms] debug_bundle_linux-x64_assets: Starting due to {} [ ] [ +91 ms] debug_bundle_linux-x64_assets: Complete [ ] [ +372 ms] Persisting file store [ ] [ +4 ms] Done persisting file store [ ] [ +3 ms] build succeeded. [ ] [ +4 ms] "flutter assemble" took 7,275ms. [ ] [ +71 ms] ensureAnalyticsSent: 69ms [ ] [ +2 ms] Running shutdown hooks [ ] [ ] Shutdown hooks complete [ ] [ +1 ms] exiting with code 0 [ +281 ms] [2/5] Building CXX object CMakeFiles/directional_focus_traversal.dir/flutter/generated_plugin_registrant.cc.o [ +34 ms] [3/5] Building CXX object CMakeFiles/directional_focus_traversal.dir/my_application.cc.o [ +96 ms] [4/5] Linking CXX executable intermediates_do_not_run/directional_focus_traversal [ ] [4/5] Install the project... [ +4 ms] -- Install configuration: "Debug" [ +8 ms] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/directional_focus_traversal [ ] -- Set runtime path of "/home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/directional_focus_traversal" to "$ORIGIN/lib" [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/icudtl.dat [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so [ +28 ms] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/version.json [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/packages [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES.Z [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/fonts [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin [ +33 ms] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json [ ] -- Installing: /home/jpnurmi/Temp/directional_focus_traversal/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json [ +10 ms] Building Linux application... (completed in 8.5s) [ +182 ms] Observatory URL on device: http://127.0.0.1:46415/ZSlcM1Id7ZI=/ [ +3 ms] Caching compiled dill [ +25 ms] Connecting to service protocol: http://127.0.0.1:46415/ZSlcM1Id7ZI=/ [ +77 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at http://127.0.0.1:46415/ZSlcM1Id7ZI=/. [ +58 ms] DDS is listening at http://127.0.0.1:34211/xi3aDv6qR6c=/. [ +30 ms] Successfully connected to service protocol: http://127.0.0.1:46415/ZSlcM1Id7ZI=/ [ +29 ms] DevFS: Creating new filesystem on the device (null) [ +9 ms] DevFS: Created new filesystem on the device (file:///tmp/directional_focus_traversalVOHOZW/directional_focus_traversal/) [ +1 ms] Updating assets [ +49 ms] Syncing files to device Linux... [ +1 ms] <- reset [ ] Compiling dart to kernel with 0 updated files [ +1 ms] <- recompile package:directional_focus_traversal/main.dart 7e11efd5-be30-4527-9246-c47e40345e4a [ ] <- 7e11efd5-be30-4527-9246-c47e40345e4a [ +51 ms] Updating files. [ ] DevFS: Sync finished [ ] Syncing files to device Linux... (completed in 54ms) [ ] Synced 0.0MB. [ ] <- accept [ +1 ms] Connected to _flutterView/0x16e48b0. [ +1 ms] Flutter run key commands. [ ] r Hot reload. 🔥🔥🔥 [ ] R Hot restart. [ ] h List all available interactive commands. [ ] d Detach (terminate "flutter run" but leave application running). [ ] c Clear the screen [ ] q Quit (terminate the application on the device). [ ] 💪 Running with sound null safety 💪 [ ] An Observatory debugger and profiler on Linux is available at: http://127.0.0.1:34211/xi3aDv6qR6c=/ [ +107 ms] flutter: focus changed FocusScopeNode#55aae(_ModalScopeState Focus Scope [PRIMARY FOCUS])(context: FocusScope, PRIMARY FOCUS) [ +217 ms] The Flutter DevTools debugger and profiler on Linux is available at: http://127.0.0.1:9102?uri=http://127.0.0.1:34211/xi3aDv6qR6c=/ [+6861 ms] flutter: focus changed FocusNode#c7bc3([PRIMARY FOCUS])(context: Focus, PRIMARY FOCUS) [+1058 ms] flutter: focus changed FocusNode#68781([PRIMARY FOCUS])(context: Focus, PRIMARY FOCUS) [ +166 ms] flutter: focus changed FocusNode#8accc([PRIMARY FOCUS])(context: Focus, PRIMARY FOCUS) ``` ``` Analyzing directional_focus_traversal... No issues found! (ran in 0.8s) ``` ``` [✓] Flutter (Channel master, 2.6.0-12.0.pre.322, on Ubuntu 21.10 5.13.0-16-generic, locale en_US.UTF-8) • Flutter version 2.6.0-12.0.pre.322 at /home/jpnurmi/Flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 5fd1d36ecc (3 hours ago), 2021-10-13 10:44:55 +0100 • Engine revision da5bd05854 • Dart version 2.15.0 (build 2.15.0-208.0.dev) [✗] Android toolchain - develop for Android devices ✗ Unable to locate Android SDK. Install Android Studio from: https://developer.android.com/studio/index.html On first launch it will assist you in installing the Android SDK components. (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions). If the Android SDK has been installed to a custom location, please use `flutter config --android-sdk` to update to that location. [✓] Linux toolchain - develop for Linux desktop • Ubuntu clang version 13.0.0-2 • cmake version 3.18.4 • ninja version 1.10.1 • pkg-config version 0.29.2 [!] Android Studio (not installed) • Android Studio not found; download from https://developer.android.com/studio/index.html (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions). [✓] VS Code • VS Code at /snap/code/current • Flutter extension version 3.27.0 [✓] Connected device (1 available) • Linux (desktop) • linux • linux-x64 • Ubuntu 21.10 5.13.0-16-generic ! Doctor found issues in 2 categories. ```

https://user-images.githubusercontent.com/140617/137133965-66518f31-9b1f-4a25-9d2b-715f0ba6a99e.mp4

maheshj01 commented 3 years ago

Hi @jpnurmi, Thanks for filing the issue. I can reproduce the issue on stable 2.5.2 and the master 2.6.0-12.0.pre.299 channel. After page up/ down the focus doesn't work with arrow keys until the currently focused item is brought into view by either scrolling via mouse / page (up/down)

https://user-images.githubusercontent.com/31410839/137150683-82c6ce59-88f8-493b-89f5-0fd71c227a54.mov

Note: The moment in the video when the scroll is stopped is when I am pressing the arrow keys at 09:00 , 19:00 which doesn't work unless scrolled to focused item

Directional focus traversal no longer works. Nothing happens.

Can you please point the version where it worked in the past it might help to track down the change that affected it.

flutter doctor -v ``` [✓] Flutter (Channel stable, 2.5.2, on macOS 11.6 20G165 darwin-arm, locale en-GB) • Flutter version 2.5.2 at /Users/mahesh/Documents/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 3595343e20 (11 days ago), 2021-09-30 12:58:18 -0700 • Engine revision 6ac856380f • Dart version 2.14.3 [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0) • Android SDK at /Users/mahesh/Library/Android/sdk • Platform android-31, build-tools 31.0.0 • ANDROID_HOME = /Users/mahesh/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 13.0, Build version 13A233 • CocoaPods version 1.10.2 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 4.2) • 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 11.0.8+10-b944.6916264) [✓] IntelliJ IDEA Community Edition (version 2021.2.1) • IntelliJ at /Applications/IntelliJ IDEA CE.app • Flutter plugin version 60.1.4 • Dart plugin version 212.5080.8 [✓] VS Code (version 1.59.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.27.0 [✓] Connected device (4 available) • sdk gphone arm64 (mobile) • emulator-5554 • android-arm64 • Android 11 (API 30) (emulator) • iPhone 11 Pro (mobile) • 3209EA5A-2ABF-46BE-8C94-83AAF6EF59FB • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-1 (simulator) • macOS (desktop) • macos • darwin-arm64 • macOS 11.6 20G165 darwin-arm • Chrome (web) • chrome • web-javascript • Google Chrome 94.0.4606.71 • No issues found! ``` ``` [✓] Flutter (Channel master, 2.6.0-12.0.pre.299, on macOS 11.6 20G165 darwin-arm, locale en-GB) • Flutter version 2.6.0-12.0.pre.299 at /Users/mahesh/Documents/flutter_master • Upstream repository https://github.com/flutter/flutter.git • Framework revision 6d5fc420b6 (34 hours ago), 2021-10-11 21:23:02 -0700 • Engine revision 7a666ecc6e • Dart version 2.15.0 (build 2.15.0-181.0.dev) [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0) • Android SDK at /Users/mahesh/Library/Android/sdk • Platform android-31, build-tools 31.0.0 • ANDROID_HOME = /Users/mahesh/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 13.0) • Xcode at /Applications/Xcode.app/Contents/Developer • CocoaPods version 1.10.2 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 4.2) • 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 11.0.8+10-b944.6916264) [✓] IntelliJ IDEA Community Edition (version 2021.2.1) • IntelliJ at /Applications/IntelliJ IDEA CE.app • Flutter plugin version 60.1.4 • Dart plugin version 212.5080.8 [✓] VS Code (version 1.59.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.27.0 [✓] Connected device (2 available) • macOS (desktop) • macos • darwin-arm64 • macOS 11.6 20G165 darwin-arm • Chrome (web) • chrome • web-javascript • Google Chrome 94.0.4606.81 • No issues found! ```
goderbauer commented 3 years ago

/cc @gspencergoog

cbracken commented 3 years ago

Very likely related to https://github.com/flutter/flutter/issues/91743

flutter-triage-bot[bot] commented 6 months ago

The triaged-desktop label is irrelevant if there is no team-desktop label or fyi-desktop label.