<itemvalue="A [TextInputFormatter] can be optionally injected into an [EditableText] to provide as-you-type validation and formatting of the text being edited. Text modification should only be applied when text is being committed by the IME and not on text under composition (i.e., only when [TextEditingValue.composing] is collapsed). See also the [FilteringTextInputFormatter], a subclass that removes characters that the user tries to enter if they do, or do not, match a given pattern (as applicable). To create custom formatters, extend the [TextInputFormatter] class and implement the [formatEditUpdate] method. Handling emojis and other complex characters {@macro flutter.widgets.EditableText.onChanged} See also: [EditableText] on which the formatting apply. [FilteringTextInputFormatter], a provided formatter for filtering characters."/>
<itemvalue="The behavior of the pattern depends on the [allow] property. If it is true, then this is an allow list, specifying a pattern that characters must match to be accepted. Otherwise, it is a deny list, specifying a pattern that characters must not match to be accepted."/>
<itemvalue="Creates a formatter that replaces banned patterns with the given [replacementString]. If [allow] is true, then the filter pattern is an allow list, and characters must match the pattern to be accepted. See also the [FilteringTextInputFormatter.allow()] constructor. If [allow] is false, then the filter pattern is a deny list, and characters that match the pattern are rejected. See also the [FilteringTextInputFormatter.deny] constructor."/>
<itemvalue="Creates a formatter that only allows characters matching a pattern."/>
<itemvalue="特殊字符"/>
<itemvalue="snapshot robot position"/>
<itemvalue="loading showing"/>
@ -68,10 +72,6 @@
<itemvalue="allow implicit scrolling"/>
<itemvalue="Save the current [page] with [PageStorage] and restore it if this controller's scrollable is recreated. If this property is set to false, the current [page] is never saved and [initialPage] is always used to initialize the scroll offset. If true (the default), the initial page is used the first time the controller's scrollable is created, since there's isn't a page to restore yet. Subsequently the saved page is restored and [initialPage] is ignored."/>
<itemvalue="viewport fraction"/>
<itemvalue="Scroll views attempt to persist their scroll position using [PageStorage]. For a [PageView], this can be disabled by setting [PageController.keepPage] to false on the [controller]. If it is enabled, using a [PageStorageKey] for the [key] of this widget is recommended to help disambiguate different scroll views from each other."/>
<itemvalue="{@tool dartpad} Here is an example of [PageView]. It creates a centered [Text] in each of the three pages which scroll horizontally."/>
<itemvalue="The [PageController] can also be used to control the [PageController.initialPage], which determines which page is shown when the [PageView] is first constructed, and the [PageController.viewportFraction], which determines the size of the pages as a fraction of the viewport size."/>
<itemvalue="A scrollable list that works page by page. Each child of a page view is forced to be the same size as the viewport. You can use a [PageController] to control which page is visible in the view. In addition to being able to control the pixel offset of the content inside the [PageView], a [PageController] also lets you control the offset in terms of pages, which are increments of the viewport size."/>