defaultTreeNodeBuilder static method
- BuildContext context,
- TreeSliverNode<
Object?> node, - AnimationStyle toggleAnimationStyle
Returns the default tree row for a given TreeSliverNode.
Used by TreeSliver.treeNodeBuilder.
This will return a Row containing the toString of TreeSliverNode.content. If the TreeSliverNode is a parent of additional nodes, a arrow icon will precede the content, and will trigger an expand and collapse animation when tapped.
Implementation
static Widget defaultTreeNodeBuilder(
BuildContext context,
TreeSliverNode<Object?> node,
AnimationStyle toggleAnimationStyle
) {
final Duration animationDuration = toggleAnimationStyle.duration
?? TreeSliver.defaultAnimationDuration;
final Curve animationCurve = toggleAnimationStyle.curve
?? TreeSliver.defaultAnimationCurve;
final int index = TreeSliverController.of(context).getActiveIndexFor(node)!;
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row(children: <Widget>[
// Icon for parent nodes
TreeSliver.wrapChildToToggleNode(
node: node,
child: SizedBox.square(
dimension: 30.0,
child: node.children.isNotEmpty
? AnimatedRotation(
key: ValueKey<int>(index),
turns: node.isExpanded ? 0.25 : 0.0,
duration: animationDuration,
curve: animationCurve,
// Renders a unicode right-facing arrow. >
child: const Icon(IconData(0x25BA), size: 14),
)
: null,
),
),
// Spacer
const SizedBox(width: 8.0),
// Content
Text(node.content.toString()),
]),
);
}