This fixes a problem with reparenting of focus nodes where it would remove the node from the scope's focused children when reparented, even if it was being reparented to another place under the same scope. This only occurred if the scope in question didn't have focus.
This caused nodes to not get autofocused when they were a child of another node within the scope, and were reparented, and then the scope was given focus (as when a route is pushed).
This keeps the node in the scope's child list where it was if the node is reparented under a parent within the same scope.
- Added a test that tries to autofocus a TextField when the route is pushed and there is another
FocusNode above the text field. This was how this was first noticed: the autofocus got ignored in
this configuration.
- Added a test to focus_manager_test that tests for the specific case of reparenting a node when
it's in the focused children of the scope.
* Updated the BottomAppBar to use elevation overlays when a dark theme is used.
* Moved the code for calculating the overlay color to a new utility
ElevationOverlay class and made it private by not including in the material package.
* Allow showModalBottomSheet to present bottom sheet that is not dismissible by tapping on the scrim
* Add guards, improve styling and tests for BottomSheet
This changes the DropDownButton so that instead of dismissing itself when any metrics change occurs, it only dismisses itself when the orientation changes.
This gets around the fact that we can't currently have a dropdown and a text field on the same page because the keyboard disappearing when the dropdown gets focus causes a metrics change, and the dropdown immediately disappears when activated.
It still will cause the keyboard to jump up and down between controls, but that's a larger issue. At least now we can use the two together again.
...because otherwise, processes that think they're manipulating your
filesystem will be doing crazy things the test is ignoring, leading to
(at best) failures and (at worst) flakes or disk corruption.
This attempts to reland #40186 and #41220, that were reverted in #41945.
The main modifications from the original PRs are that I predefine the shortcuts and actions maps instead of defining them inline in the build function, and I use a new mapEquals to do a deep comparison so that we don't rebuild modified things if the contents of the map haven't changed.
I also eliminated an operator== and hashCode that were defined on the Actions widget, since widgets shouldn't have those. (it's too bad though: I get an 85% speedup if we leave this in! Too bad it prevents rebuilding of the children...)
Fixes#40101
Currently the surface of a platform view is only created only one when the state of PlatformViewLink is created. When the PlatformViewLink widget changes, the PlatformViewController in the corresponding state is also updated. Just the surface is not updated even though it depends on the controller.
This PR changes this behavior to recreate the surface whenever the controller is updated.
* Add smoke test for the new Android embedding
* Update AndroidManifest.xml in app template
* Update test README.md
* Remove widget_test.dart
* Update pubspec.yaml
* Force GeneratedPluginRegistrant.java