TreeSliver<T> class
A widget that displays TreeSliverNodes that expand and collapse in a vertically and horizontally scrolling Viewport.
The type T
correlates to the type of TreeSliver and TreeSliverNode,
representing the type of TreeSliverNode.content.
The rows of the tree are laid out on demand by the Viewport's render object, using TreeSliver.treeNodeBuilder. This will only be called for the nodes that are visible, or within the Viewport.cacheExtent.
The TreeSliver.treeNodeBuilder returns the Widget that represents the given TreeSliverNode.
The TreeSliver.treeRowExtentBuilder returns a double representing the extent of a given node in the main axis.
Providing a TreeSliverController will enable querying and controlling the state of nodes in the tree.
A TreeSliver only supports a vertical axis direction of AxisDirection.down and a horizontal axis direction of AxisDirection.right.
To create a local project with this code sample, run:
flutter create --sample=widgets.TreeSliver.1 mysample
To create a local project with this code sample, run:
flutter create --sample=widgets.TreeSliver.2 mysample
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- TreeSliver
Constructors
-
TreeSliver({Key? key, required List<
TreeSliverNode< tree, TreeSliverNodeBuilder treeNodeBuilder = TreeSliver.defaultTreeNodeBuilder, TreeSliverRowExtentBuilder treeRowExtentBuilder = TreeSliver.defaultTreeRowExtentBuilder, TreeSliverController? controller, TreeSliverNodeCallback? onNodeToggle, AnimationStyle? toggleAnimationStyle, TreeSliverIndentationType indentation = TreeSliverIndentationType.standard, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, SemanticIndexCallback semanticIndexCallback = _kDefaultSemanticIndexCallback, int semanticIndexOffset = 0, int? findChildIndexCallback(Key)?})T> > -
Creates an instance of a TreeSliver for displaying TreeSliverNodes
that animate expanding and collapsing of nodes.
const
Properties
- addAutomaticKeepAlives → bool
-
Whether to wrap each child in an AutomaticKeepAlive.
final
- addRepaintBoundaries → bool
-
Whether to wrap each child in a RepaintBoundary.
final
- addSemanticIndexes → bool
-
Whether to wrap each child in an IndexedSemantics.
final
- controller → TreeSliverController?
-
If provided, the controller can be used to expand and collapse
TreeSliverNodes, or lookup information about the current state of the
TreeSliver.
final
- findChildIndexCallback → int? Function(Key)?
-
Called to find the new index of a child based on its key in case of reordering.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- indentation → TreeSliverIndentationType
-
The number of pixels children will be offset by in the cross axis based on
their TreeSliverNode.depth.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- onNodeToggle → TreeSliverNodeCallback?
-
Called when a TreeSliverNode expands or collapses.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- semanticIndexCallback → SemanticIndexCallback
-
A SemanticIndexCallback which is used when addSemanticIndexes is true.
final
- semanticIndexOffset → int
-
An initial offset to add to the semantic indexes generated by this widget.
final
- toggleAnimationStyle → AnimationStyle?
-
The default AnimationStyle for expanding and collapsing nodes in the
TreeSliver.
final
-
tree
→ List<
TreeSliverNode< T> > -
The list of TreeSliverNodes that may be displayed in the TreeSliver.
final
- treeNodeBuilder → TreeSliverNodeBuilder
-
Called to build and entry of the TreeSliver for the given node.
final
- treeRowExtentBuilder → TreeSliverRowExtentBuilder
-
Called to calculate the extent of the widget built for the given
TreeSliverNode.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< TreeSliver< T> > -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent 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 DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → 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 ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- defaultToggleAnimationStyle ↔ AnimationStyle
-
The default AnimationStyle used for node expand and collapse animations,
when one has not been provided in toggleAnimationStyle.
getter/setter pair
Static Methods
-
defaultTreeNodeBuilder(
BuildContext context, TreeSliverNode< Object?> node, AnimationStyle toggleAnimationStyle) → Widget - Returns the default tree row for a given TreeSliverNode.
-
defaultTreeRowExtentBuilder(
TreeSliverNode< Object?> node, SliverLayoutDimensions dimensions) → double - Returns the fixed default extent for rows in the tree, which is 40 pixels.
-
wrapChildToToggleNode(
{required TreeSliverNode< Object?> node, required Widget child}) → Widget - A wrapper method for triggering the expansion or collapse of a TreeSliverNode.
Constants
- defaultAnimationCurve → const Curve
- A default of Curves.linear, which is used in the tree's expanding and collapsing node animation.
- defaultAnimationDuration → const Duration
- A default Duration of 150 milliseconds, which is used in the tree's expanding and collapsing node animation.