Scrollable class
A widget that scrolls.
Scrollable implements the interaction model for a scrollable widget, including gesture recognition, but does not have an opinion about how the viewport, which actually displays the children, is constructed.
It's rare to construct a Scrollable directly. Instead, consider ListView or GridView, which combine scrolling, viewporting, and a layout model. To combine layout models (or to use a custom layout mode), consider using CustomScrollView.
The static Scrollable.of and Scrollable.ensureVisible functions are often used to interact with the Scrollable widget inside a ListView or a GridView.
To further customize scrolling behavior with a Scrollable:
-
You can provide a viewportBuilder to customize the child model. For example, SingleChildScrollView uses a viewport that displays a single box child whereas CustomScrollView uses a Viewport or a ShrinkWrappingViewport, both of which display a list of slivers.
-
You can provide a custom ScrollController that creates a custom ScrollPosition subclass. For example, PageView uses a PageController, which creates a page-oriented scroll position subclass that keeps the same page visible when the Scrollable resizes.
See also:
- ListView, which is a commonly used ScrollView that displays a scrolling, linear list of child widgets.
- PageView, which is a scrolling list of child widgets that are each the size of the viewport.
- GridView, which is a ScrollView that displays a scrolling, 2D array of child widgets.
- CustomScrollView, which is a ScrollView that creates custom scroll effects using slivers.
- SingleChildScrollView, which is a scrollable widget that has a single child.
- ScrollNotification and NotificationListener, which can be used to watch the scroll position without using a ScrollController.
- Inheritance
- Object
- Diagnosticable
- DiagnosticableTree
- Widget
- StatefulWidget
- Scrollable
Constructors
- Scrollable({Key key, AxisDirection axisDirection: AxisDirection.down, ScrollController controller, ScrollPhysics physics, @required ViewportBuilder viewportBuilder, bool excludeFromSemantics: false, int semanticChildCount })
-
Creates a widget that scrolls. [...]
const
Properties
- axis → Axis
-
The axis along which the scroll view scrolls. [...]
read-only
- axisDirection → AxisDirection
-
The direction in which this widget scrolls. [...]
final
- controller → ScrollController
-
An object that can be used to control the position to which this widget is
scrolled. [...]
final
- excludeFromSemantics → bool
-
Whether the scroll actions introduced by this Scrollable are exposed
in the semantics tree. [...]
final
- physics → ScrollPhysics
-
How the widgets should respond to user input. [...]
final
- semanticChildCount → int
-
The number of children that will contribute semantic information. [...]
final
- viewportBuilder → ViewportBuilder
-
Builds the viewport through which the scrollable content is displayed. [...]
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(
) → ScrollableState -
Creates the mutable state for this widget at a given location in the tree. [...]
override
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node. [...]
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
-
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
Static Methods
-
ensureVisible(
BuildContext context, { double alignment: 0.0, Duration duration: Duration.zero, Curve curve: Curves.ease }) → Future< void> - Scrolls the scrollables that enclose the given context so as to make the given context visible.
-
of(
BuildContext context) → ScrollableState - The state from the closest instance of this class that encloses the given context. [...]