Remove single-view assumption from material library (#117486)
* Remove single-view assumption from material library
* one widget
diff --git a/packages/flutter/lib/src/material/dropdown.dart b/packages/flutter/lib/src/material/dropdown.dart
index dea3ea5..c85dfc7 100644
--- a/packages/flutter/lib/src/material/dropdown.dart
+++ b/packages/flutter/lib/src/material/dropdown.dart
@@ -1358,9 +1358,9 @@
Orientation _getOrientation(BuildContext context) {
Orientation? result = MediaQuery.maybeOrientationOf(context);
if (result == null) {
- // If there's no MediaQuery, then use the window aspect to determine
+ // If there's no MediaQuery, then use the view aspect to determine
// orientation.
- final Size size = WidgetsBinding.instance.window.physicalSize;
+ final Size size = View.of(context).physicalSize;
result = size.width > size.height ? Orientation.landscape : Orientation.portrait;
}
return result;
diff --git a/packages/flutter/lib/src/material/time_picker.dart b/packages/flutter/lib/src/material/time_picker.dart
index 62ee80b..4482ab1 100644
--- a/packages/flutter/lib/src/material/time_picker.dart
+++ b/packages/flutter/lib/src/material/time_picker.dart
@@ -2053,7 +2053,7 @@
// If screen reader is in use, make the hint text say hours/minutes.
// Otherwise, remove the hint text when focused because the centered cursor
// appears odd above the hint text.
- final String? hintText = MediaQuery.accessibleNavigationOf(context) || WidgetsBinding.instance.window.semanticsEnabled
+ final String? hintText = MediaQuery.accessibleNavigationOf(context) || View.of(context).platformDispatcher.semanticsEnabled
? widget.semanticHintText
: (focusNode.hasFocus ? null : _formattedValue);
diff --git a/packages/flutter/lib/src/widgets/binding.dart b/packages/flutter/lib/src/widgets/binding.dart
index 15bddf1..ee7fb9a 100644
--- a/packages/flutter/lib/src/widgets/binding.dart
+++ b/packages/flutter/lib/src/widgets/binding.dart
@@ -117,7 +117,9 @@
/// @override
/// void initState() {
/// super.initState();
- /// _lastSize = WidgetsBinding.instance.window.physicalSize;
+ /// // [View.of] exposes the view from `WidgetsBinding.instance.platformDispatcher.views`
+ /// // into which this widget is drawn.
+ /// _lastSize = View.of(context).physicalSize;
/// WidgetsBinding.instance.addObserver(this);
/// }
///
@@ -129,7 +131,7 @@
///
/// @override
/// void didChangeMetrics() {
- /// setState(() { _lastSize = WidgetsBinding.instance.window.physicalSize; });
+ /// setState(() { _lastSize = View.of(context).physicalSize; });
/// }
///
/// @override
@@ -186,7 +188,7 @@
///
/// @override
/// void didChangeTextScaleFactor() {
- /// setState(() { _lastTextScaleFactor = WidgetsBinding.instance.window.textScaleFactor; });
+ /// setState(() { _lastTextScaleFactor = WidgetsBinding.instance.platformDispatcher.textScaleFactor; });
/// }
///
/// @override