<itemvalue="If true the [body] and the scaffold's floating widgets should size themselves to avoid the onscreen keyboard whose height is defined by the ambient [MediaQuery]'s [MediaQueryData.viewInsets] `bottom` property. For example, if there is an onscreen keyboard displayed above the scaffold, the body can be resized to avoid overlapping the keyboard, which prevents widgets inside the body from being obscured by the keyboard. Defaults to true."/>
<itemvalue="Position the control relative to the text in the fashion that is typical for the current platform, and place the secondary widget on the opposite side."/>
<itemvalue="Position the control on the trailing edge, and the secondary widget, if any, on the leading edge."/>
@ -53,14 +56,11 @@
<itemvalue="The length of time this animation should last. If [reverseDuration] is specified, then [duration] is only used when going [forward]. Otherwise, it specifies the duration going in both directions."/>
<itemvalue="Called whenever the widget configuration changes. If the parent widget rebuilds and request that this location in the tree update to display a new widget with the same [runtimeType] and [Widget.key], the framework will update the [widget] property of this [State] object to refer to the new widget and then call this method with the previous widget as an argument. Override this method to respond when the [widget] changes (e.g., to start implicit animations). The framework always calls [build] after calling [didUpdateWidget], which means any calls to [setState] in [didUpdateWidget] are redundant. {@macro flutter.widgets.State.initState} Implementations of this method should start with a call to the inherited method, as in `super.didUpdateWidget(oldWidget)`."/>
<itemvalue="Called when a dependency of this [State] object changes. For example, if the previous call to [build] referenced an [InheritedWidget] that later changed, the framework would call this method to notify this object about the change. This method is also called immediately after [initState]. It is safe to call [BuildContext.dependOnInheritedWidgetOfExactType] from this method. Subclasses rarely override this method because the framework always calls [build] after a dependency changes. Some subclasses do override this method because they need to do some expensive work (e.g., network fetches) when their dependencies change, and that work would be too expensive to do for every build."/>
<itemvalue="Whether to continue showing the old image (true), or briefly show nothing (false), when the image provider changes. The default value is false. Design discussion Why is the default value of [gaplessPlayback] false? Having the default value of [gaplessPlayback] be false helps prevent situations where stale or misleading information might be presented. Consider the following case: We have constructed a 'Person' widget that displays an avatar [Image] of the currently loaded person along with their name. We could request for a new person to be loaded into the widget at any time. Suppose we have a person currently loaded and the widget loads a new person. What happens if the [Image] fails to load? Option A ([gaplessPlayback] = false): The new person's name is coupled with a blank image. Option B ([gaplessPlayback] = true): The widget displays the avatar of the previous person and the name of the newly loaded person. This is why the default value is false. Most of the time, when you change the image provider you're not just changing the image, you're removing the old widget and adding a new one and not expecting them to have any relationship. With [gaplessPlayback] on you might accidentally break this expectation and re-use the old widget."/>
<itemvalue="gapless Playback"/>
<itemvalue="If [cacheWidth] or [cacheHeight] are provided, it indicates to the engine that the image must be decoded at the specified size. The image will be rendered to the constraints of the layout or [width] and [height] regardless of these parameters. These parameters are primarily intended to reduce the memory usage of [ImageCache]."/>