TreeController<NodeData extends Object> constructor

TreeController<NodeData extends Object>({
  1. NodeData? tree,
  2. required ChildrenProvider<NodeData> childrenProvider,
  3. ExpandProvider<NodeData> expandProvider = kDefaultExpandProvider,
})

Implementation

TreeController({
  NodeData? tree,
  required this.childrenProvider,
  this.expandProvider = kDefaultExpandProvider,
}) {
  if (tree != null) {
    _nodeTree = _generateNodeTree(tree, 0);
    _extractVisibleNodes();
  }

  _sc = ScrollController(
    onAttach: (pos) {
      if (_offset != 0) {
        WidgetsBinding.instance
            .addPostFrameCallback((_) => pos.jumpTo(_offset));
      }
    },
    onDetach: (pos) {
      _offset = pos.pixels;
    },
  );
}