-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listf: material designflutter/packages/flutter/material repository.flutter/packages/flutter/material repository.found in release: 3.22Found to occur in 3.22Found to occur in 3.22found in release: 3.23Found to occur in 3.23Found to occur in 3.23frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-designOwned by Design Languages teamOwned by Design Languages teamtriaged-designTriaged by Design Languages teamTriaged by Design Languages team
Description
Steps to reproduce
- Run sample
- Hover cursor on item 3.
- Press down arrow key until you reach the bottom of the menu.
- Move cursor off item 3 then back on item 3.
- Press the up arrow key.
- Observe focus position.
Expected results
Focus should move to item 2.
Actual results
Focus moves to item 8. I believe this is because the focus scope data is not being invalidated.
Code sample
Code sample
import 'package:flutter/material.dart';
void main() => runApp(const Bug());
// Reproduce: hover cursor on item 3. Press down arrow key until you reach the
// bottom of the menu. Move cursor off item 3 then back on item 3. Press up
// arrow key.
class Bug extends StatelessWidget {
const Bug({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme:
ThemeData(colorSchemeSeed: Colors.blue, brightness: Brightness.dark),
home: const BugApp(),
);
}
}
class BugApp extends StatefulWidget {
const BugApp({
super.key,
});
@override
State<BugApp> createState() => _BugAppState();
}
class _BugAppState extends State<BugApp> {
FocusNode focusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Material(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
MenuAnchor(
childFocusNode: focusNode,
builder: (BuildContext context, MenuController controller, Widget? child) {
return TextButton(
focusNode: focusNode,
onPressed: () {
if (controller.isOpen) {
controller.close();
} else {
controller.open();
}
},
child: const Text('Open'),
);
},
menuChildren: <Widget>[
for (int i = 0; i < 10; i++)
MenuItemButton(
child: Text('Item $i'),
onPressed: () {},
),
],
),
],
),
),
);
}
}
Screenshots or Video
Screenshots / Video demonstration
Screen.Recording.2024-06-27.at.3.51.29.AM.mov
Logs
Logs
None applicableFlutter Doctor output
Doctor output
[✓] Flutter (Channel master, 3.23.0-13.0.pre.350, on macOS 14.0 23A344 darwin-arm64, locale en-US)
• Flutter version 3.23.0-13.0.pre.350 on channel master at /Users/davidhicks/fvm/versions/master
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision a52e266b79 (9 hours ago), 2024-06-26 14:59:56 -0700
• Engine revision 1d5e3cc55a
• Dart version 3.5.0 (build 3.5.0-299.0.dev)
• DevTools version 2.36.0
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/davidhicks/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• ANDROID_HOME = /Users/davidhicks/Library/Android/sdk
• 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-11609105)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15F31d
• CocoaPods version 1.15.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.1)
• 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-11609105)
[✓] VS Code (version 1.90.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.90.0
[✓] Connected device (3 available)
• macOS (desktop) • macos • darwin-arm64 • macOS 14.0 23A344 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 14.0 23A344 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 126.0.6478.127
! Error: Browsing on the local area network for David’s iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as
this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources
• All expected network resources are available.
• No issues found!Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listf: material designflutter/packages/flutter/material repository.flutter/packages/flutter/material repository.found in release: 3.22Found to occur in 3.22Found to occur in 3.22found in release: 3.23Found to occur in 3.23Found to occur in 3.23frameworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionIssue is closed as already fixed in a newer versionteam-designOwned by Design Languages teamOwned by Design Languages teamtriaged-designTriaged by Design Languages teamTriaged by Design Languages team