This does a cleanup of the examples, removing all of the "section" markers and extra comments that we don't need anymore now that the samples are no longer in the source code. It also removes the --template arguments from the {@tool dartpad} and {@tool sample} directives, since those are no longer used. It converts two examples that I discovered were still embedded into linked examples in the examples folder.
I didn't delete the templates from the snippets config folder yet, because there are still embedded samples in the dart:ui package from the engine that use them. Once dart:ui no longer uses the templates, they can be removed.
I bumped the version of the snippets package to pick up a change that allows removal of the --template argument.
I've added a Focus.withExternalFocusNode constructor to the Focus widget (and the FocusScope widget) that makes it explicit that the widget's attributes won't affect the settings of the given focus node.
This is to help address #83023, which is a snag in the API that people run into occasionally.
This should help make it explicit when you want the widget attributes to take precedence, and when you don't.
This adjusts the size of the delete button so that it takes up just slightly less than half of the chip, so that legacy tests that tap on the center of the chip still hit the chip, and not the delete button.
A follow-on change for #90531
In the process of fixing #90044, I realized that it's also possible for hovered tooltips to show more than one at a time if the widgets are nested, so this PR is a fix that prevents more than one tooltip from showing at a time with hovered tooltips.
This adds a smoke test for every single API example. It also fixes 17 tests that had bugs in them, or were otherwise broken, and even fixes one actual bug in the framework, and one limitation in the framework.
The bug in the framework is that NetworkImage's _loadAsync method had await response.drain<List<int>>();, but if the response is null, it will throw a cryptic exception saying that Null can't be assigned to List<int>. The fix was just to use await response.drain<void>(); instead.
The limitation is that RelativePositionedTransition takes an Animation<Rect> rect parameter, and if you want to use a RectTween with it, the value emitted there is Rect?, and one of the examples was just casting from Animation<Rect> to Animation<Rect?>, which is invalid, so I modified RelativePositionedTransition to take a Rect? and just use Rect.zero if the rect is null.
This fixes#90044 by limiting the effect of useDeleteButtonTooltip to the delete button, instead of both the main tooltip and the delete button. This means that when useDeleteButtonTooltip was false, it used to not display the main tooltip either, but now it does.
* Adding onLongPress for DataRow
Useful to be able to e.g. start a selection mode of rows or show a drop down menu.
* Test for onLongPress
* Changed parameter
This cleans up the dismissable_test to be less fragile, and make it harder to forget to reset things between runs.
I eliminated a bunch of globals that were susceptible to being missed and passed them in to buildTest instead, and removed some values that were always the same (itemExtent).