OutlinerListView class

Core outliner list widget without any app-specific UI chrome.

Displays a hierarchical list of editable blocks with drag-and-drop support. All UI states (loading, error, empty) are customizable via builder callbacks.

Example basic usage:

OutlinerListView()

Example with custom styling and builders:

OutlinerListView(
  config: OutlinerConfig(
    blockStyle: BlockStyle(indentWidth: 32.0),
  ),
  loadingBuilder: (context) => MyCustomLoadingWidget(),
  emptyBuilder: (context, onAddBlock) => MyEmptyState(onAdd: onAddBlock),
)
Inheritance

Constructors

OutlinerListView({Key? key, OutlinerConfig config = const OutlinerConfig(), Widget blockBuilder(BuildContext context, Block block)?, Widget editingBlockBuilder(BuildContext context, Block block, TextEditingController controller, FocusNode focusNode, VoidCallback onSubmitted)?, Widget bulletBuilder(BuildContext context, Block block, bool hasChildren, bool isCollapsed, VoidCallback? onToggle)?, InputDecoration textFieldDecorationBuilder(BuildContext context)?, Widget dragFeedbackBuilder(BuildContext context, Block block)?, Widget dropZoneBuilder(BuildContext context, bool isHighlighted, double depth)?, Widget loadingBuilder(BuildContext context)?, Widget errorBuilder(BuildContext context, String errorMessage, VoidCallback onRetry)?, Widget emptyBuilder(BuildContext context, VoidCallback onAddBlock)?})
const

Properties

blockBuilder Widget Function(BuildContext context, Block block)?
Custom builder for rendering block content when not editing
final
bulletBuilder Widget Function(BuildContext context, Block block, bool hasChildren, bool isCollapsed, VoidCallback? onToggle)?
Custom builder for rendering bullet/collapse indicator
final
config OutlinerConfig
Configuration for the outliner
final
dragFeedbackBuilder Widget Function(BuildContext context, Block block)?
Custom builder for drag feedback widget
final
dropZoneBuilder Widget Function(BuildContext context, bool isHighlighted, double depth)?
Custom builder for drop zone indicators
final
editingBlockBuilder Widget Function(BuildContext context, Block block, TextEditingController controller, FocusNode focusNode, VoidCallback onSubmitted)?
Custom builder for rendering block content when editing
final
emptyBuilder Widget Function(BuildContext context, VoidCallback onAddBlock)?
Custom builder for empty state Parameters: context, callback to add first block If null, shows simple empty message
final
errorBuilder Widget Function(BuildContext context, String errorMessage, VoidCallback onRetry)?
Custom builder for error state Parameters: context, error message, retry callback If null, shows simple error text with retry button
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
loadingBuilder Widget Function(BuildContext context)?
Custom builder for loading state If null, shows a simple centered loading indicator
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
textFieldDecorationBuilder InputDecoration Function(BuildContext context)?
Custom builder for TextField decoration when editing
final

Methods

build(BuildContext context, WidgetRef ref) Widget
Describes the part of the user interface represented by this widget.
createElement() → ConsumerStatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → _ConsumerState
Creates the mutable state for this widget at a given location in the tree.
inherited
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