Use adaptive more icon for popup_menu (#70773)

This commit is contained in:
Pierre-Louis 2020-12-01 19:03:05 +01:00 committed by GitHub
parent 8522ec7e11
commit a508d358ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 16 deletions

View file

@ -1102,20 +1102,6 @@ class PopupMenuButtonState<T> extends State<PopupMenuButton<T>> {
}
}
Icon _getIcon(TargetPlatform platform) {
assert(platform != null);
switch (platform) {
case TargetPlatform.android:
case TargetPlatform.fuchsia:
case TargetPlatform.linux:
case TargetPlatform.windows:
return const Icon(Icons.more_vert);
case TargetPlatform.iOS:
case TargetPlatform.macOS:
return const Icon(Icons.more_horiz);
}
}
bool get _canRequestFocus {
final NavigationMode mode = MediaQuery.maybeOf(context)?.navigationMode ?? NavigationMode.traditional;
switch (mode) {
@ -1146,7 +1132,7 @@ class PopupMenuButtonState<T> extends State<PopupMenuButton<T>> {
);
return IconButton(
icon: widget.icon ?? _getIcon(Theme.of(context).platform),
icon: widget.icon ?? Icon(Icons.adaptive.more),
padding: widget.padding,
tooltip: widget.tooltip ?? MaterialLocalizations.of(context).showMenuTooltip,
onPressed: widget.enabled ? showButtonMenu : null,

View file

@ -4,6 +4,7 @@
import 'dart:ui' show window, SemanticsFlag;
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/rendering.dart';
@ -368,8 +369,8 @@ void main() {
testWidgets('PopupMenuButton is horizontal on iOS', (WidgetTester tester) async {
Widget build(TargetPlatform platform) {
debugDefaultTargetPlatformOverride = platform;
return MaterialApp(
theme: ThemeData(platform: platform),
home: Scaffold(
appBar: AppBar(
actions: <Widget>[
@ -405,6 +406,8 @@ void main() {
expect(find.byIcon(Icons.more_vert), findsNothing);
expect(find.byIcon(Icons.more_horiz), findsOneWidget);
debugDefaultTargetPlatformOverride = null;
});
group('PopupMenuButton with Icon', () {