RefreshIndicator class
A widget that supports the Material "swipe to refresh" idiom.
When the child's Scrollable descendant overscrolls, an animated circular progress indicator is faded into view. When the scroll ends, if the indicator has been dragged far enough for it to become completely opaque, the onRefresh callback is called. The callback is expected to update the scrollable's contents and then complete the Future it returns. The refresh indicator disappears after the callback's Future has completed.
If the Scrollable might not have enough content to overscroll, consider
settings its physics
property to AlwaysScrollableScrollPhysics:
ListView(
physics: const AlwaysScrollableScrollPhysics(),
children: ...
Using AlwaysScrollableScrollPhysics will ensure that the scroll view is always scrollable and, therefore, can trigger the RefreshIndicator.
A RefreshIndicator can only be used with a vertical scroll view.
See also:
- material.google.com/patterns/swipe-to-refresh.html
- RefreshIndicatorState, can be used to programmatically show the refresh indicator.
- RefreshProgressIndicator, widget used by RefreshIndicator to show the inner circular progress spinner during refreshes.
- CupertinoSliverRefreshControl, an iOS equivalent of the pull-to-refresh pattern. Must be used as a sliver inside a CustomScrollView instead of wrapping around a ScrollView because it's a part of the scrollable instead of being overlaid on top of it.
- Inheritance
- Object
- Diagnosticable
- DiagnosticableTree
- Widget
- StatefulWidget
- RefreshIndicator
Constructors
- RefreshIndicator({Key key, @required Widget child, double displacement: 40.0, @required RefreshCallback onRefresh, Color color, Color backgroundColor, ScrollNotificationPredicate notificationPredicate: defaultScrollNotificationPredicate, String semanticsLabel, String semanticsValue })
-
Creates a refresh indicator. [...]
const
Properties
- backgroundColor → Color
-
The progress indicator's background color. The current theme's
ThemeData.canvasColor by default.
final
- child → Widget
-
The widget below this widget in the tree. [...]
final
- color → Color
-
The progress indicator's foreground color. The current theme's
ThemeData.accentColor by default.
final
- displacement → double
-
The distance from the child's top or bottom edge to where the refresh
indicator will settle. During the drag that exposes the refresh indicator,
its actual displacement may significantly exceed this value.
final
- notificationPredicate → ScrollNotificationPredicate
-
A check that specifies whether a ScrollNotification should be
handled by this widget. [...]
final
- onRefresh → RefreshCallback
-
A function that's called when the user has dragged the refresh indicator
far enough to demonstrate that they want the app to refresh. The returned
Future must complete when the refresh operation is finished.
final
- semanticsLabel → String
-
The
Semantics.label
for this progress indicator. [...]final - semanticsValue → String
-
The
Semantics.value
for this progress indicator. [...]final - hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- key → Key
-
Controls how one widget replaces another widget in the tree. [...]
final, inherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
Methods
-
createState(
) → RefreshIndicatorState -
Creates the mutable state for this widget at a given location in the tree. [...]
override
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children. [...]
@protected, inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node. [...]
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
toDiagnosticsNode(
{String name, DiagnosticsTreeStyle style }) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by toStringDeep. [...]
inherited
-
toString(
{DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String -
Returns a string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String -
Returns a string representation of this node and its descendants. [...]
inherited
-
toStringShallow(
{String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String -
Returns a one-line detailed description of the object. [...]
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
dynamic other) → bool -
The equality operator. [...]
inherited