<itemvalue="When looking to easily toggle the default decorations, you can use [ScrollBehavior.copyWith] instead of creating your own [ScrollBehavior] class. The `scrollbar` and `overscrollIndicator` flags can turn these decorations off. {@endtemplate}"/>
<itemvalue="This class can be extended to further customize a [ScrollBehavior] for a subtree. For example, overriding [ScrollBehavior.getScrollPhysics] sets the default [ScrollPhysics] for [Scrollable]s that inherit this [ScrollConfiguration]. Overriding [ScrollBehavior.buildOverscrollIndicator] can be used to add or change the default [GlowingOverscrollIndicator] decoration, while [ScrollBehavior.buildScrollbar] can be changed to modify the default [Scrollbar]."/>
<itemvalue="Describes how [Scrollable] widgets should behave. {@template flutter.widgets.scrollBehavior} Used by [ScrollConfiguration] to configure the [Scrollable] widgets in a subtree."/>
<itemvalue="Set the initial position at the position where this gesture recognizer won the arena."/>
<itemvalue="Set the initial offset at the position where the first down event was detected."/>
<itemvalue="With this flag set to false, when accessibility focus reaches the end of the current page and the user attempts to move it to the next element, the focus will traverse to the next widget outside of the page view."/>
<itemvalue="Controls whether the widget's pages will respond to [RenderObject.showOnScreen], which will allow for implicit accessibility scrolling."/>
<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."/>
<itemvalue="Converts [input] to an YAML document as [String]. This implements `dart:convert` [Converter]. - Calls [write]."/>
<itemvalue="[toEncodable] is called to encode non-builtin classes."/>
<itemvalue="If [allowUnquotedStrings] is set, strings are written without quotes if possible."/>
@ -57,21 +72,6 @@
<itemvalue="If you do not care about the return value of [refresh], use [invalidate] instead. Doing so has the benefit of: - making the invalidation logic more resilient by avoiding multiple refreshes at once. - possibly avoids recomputing a provider if it isn't needed immediately. This method is useful for features like "pull to refresh" or "retry on error", to restart a specific provider. {@endtemplate}"/>
<itemvalue="{@template riverpod.refresh} Forces a provider to re-evaluate its state immediately, and return the created value. Writing: ```dart final newValue = ref.refresh(provider); ``` is strictly identical to doing: ```dart ref.invalidate(provider); final newValue = ref.read(provider); ```"/>
<itemvalue="{@template riverpod.invalidate} Invalidates the state of the provider, destroying the state immediately and causing the provider to rebuild at some point in the future. As opposed to [refresh], the rebuild is not immediate and is instead delayed by an undefined amount of time. Typically, the rebuild happens at the next tick of the event loop. But if a provider is not listened to, the rebuild may be delayed until the provider is listened to again."/>
<itemvalue="failed"/>
<itemvalue="success"/>
<itemvalue="loading"/>
<itemvalue="before load"/>
<itemvalue="Invalidates the state of the provider, causing it to refresh. As opposed to [refresh], the refresh is not immediate and is instead delayed to the next read or next frame. Calling [invalidate] multiple times will refresh the provider only once. Calling [invalidate] will cause the provider to be disposed immediately. - [asReload] (false by default) can be optionally passed to tell Riverpod to clear the state before refreshing it. This is only useful for asynchronous providers, as by default, [AsyncValue] keeps a reference on state during loading states. Using [asReload] will disable this behavior and count as a "hard refresh". If used on a provider which is not initialized, this method will have no effect."/>
<itemvalue="exclude"/>
<itemvalue="Whether the state of the provider should be maintained if it is no-longer used. Defaults to false."/>
<itemvalue="create permanent widget"/>
<itemvalue="Listens to changes on the value exposed by this provider. The listener will be called immediately after the provider completes building. As opposed to [Ref.listen], the listener will be called even if [updateShouldNotify] returns false, meaning that the previous and new value can potentially be identical."/>
<itemvalue="[fireImmediately] (false by default) can be optionally passed to tell Riverpod to immediately call the listener with the current value."/>
<itemvalue="- [weak] (false by default) can be optionally passed to have the listener not cause the provider to be initialized and kept alive. This enables listening to changes on a provider, without causing it to perform any work if it currently isn't used."/>
<itemvalue="{@template riverpod.listen} Listen to a provider and call [listener] whenever its value changes. Listeners will automatically be removed when the provider rebuilds (such as when a provider listened with [Ref.watch] changes). Returns an object that allows cancelling the subscription early. [fireImmediately] (false by default) can be optionally passed to tell Riverpod to immediately call the listener with the current value. [onError] can be specified to listen to uncaught errors in the provider.\ Note:\ [onError] will _not_ be triggered if the provider catches the exception and emit a valid value out of it. As such, if a [FutureProvider][StreamProvider] fail, [onError] will not be called. Instead the listener will receive an [AsyncError]. - [weak] (false by default) can be optionally passed to have the listener not cause the provider to be initialized and kept alive. This enables listening to changes on a provider, without causing it to perform any work if it currently isn't used. {@endtemplate}"/>
<itemvalue="Listens to changes on the value exposed by this provider. The listener will be called immediately after the provider completes building. As opposed to [Ref.listen], the listener will be called even if [updateShouldNotify] returns false, meaning that the previous and new value can potentially be identical. Returns a function which can be called to remove the listener."/>