Comments (3)
I have also encountered this problem, may I ask if the problem has been solved
from animated_tree_view.
I solved it by cloing the repo and adding
void fixLastChild() {
for (var i = 0; i < childrenAsList.length; i++) {
if (childrenAsList[i] is TreeNode) {
(childrenAsList[i] as TreeNode).isLastChild = i == childrenAsList.length - 1;
}
}
}
to listenable_node.dart and altering all the add
addAll
remove
etc.. to call it after the super
calls.
Then in _IndentationPainter
I added an extra parameter isLastChild
and initialize it from the node
in constructor. Taking it from the node itself did not work for me.
return CustomPaint(
foregroundPainter: _IndentationPainter(
indentation: indentation,
node: node,
isLastChild: node.isLastChild,
minLevelToIndent: minLevelToIndent,
),
child: content,
);
And alter it's shouldRepaint
@override
bool shouldRepaint(_IndentationPainter oldDelegate) {
return indentation != oldDelegate.indentation || node != oldDelegate.node || isLastChild != oldDelegate.isLastChild;
}
Do not that it is O(n) for every operation so for large trees may be inadequate. It works for my specific usecase.
from animated_tree_view.
I'm not sure if this error originated from me, but seeing this error here made me start thinking that it was caused by the package. My solution was different. I created the following special methods. It's easier than the method above and I think it will work for everyone facing this problem. It worked for me.
Future<void> insertNodeBelow(IndexedTreeNode<dynamic> referenceNode,
IndexedTreeNode<dynamic> newNode) async {
if (referenceNode.isLastChild) {
referenceNode.isLastChild = false;
newNode.isLastChild = true;
}
referenceNode.parent?.insertAfter(referenceNode, newNode);
//my code
}
and...
Future<void> addNode(
IndexedTreeNode<dynamic> parent, IndexedTreeNode<dynamic> newNode) async {
for (final child in parent.children) {
if (child is IndexedTreeNode<dynamic>) {
child.isLastChild = false;
}
}
newNode.isLastChild = true;
parent.add(newNode);
//my code
}
This is it.
I hope the package owner does something to fix these bugs.
from animated_tree_view.
Related Issues (20)
- 2D Scrolling HOT 1
- How to load the tree data only when it is needed? HOT 4
- How to detect if node is expanding or shrinking in onItemTap method? HOT 1
- expandAllChildren HOT 3
- Get objects in the tree
- Expand on ExpansionIndicator tap instead of on Node tap HOT 3
- is Infinite nesting expands the fold list? HOT 1
- Please make AnimationController in ExpansionIndicatorState public
- v2.0.1 ,add node to rootNode will produce repeated subNode UI
- How to use with sticky headers?
- [Feature Request] Need indentationBuilder to customize indentation for different level
- UnimplementedError: combinePaths not implemented in HTML renderer [iOs Web]
- Flutter 3.22 breaks package in release mode
- How to change ListTile (child view) left Padding HOT 2
- AnimatedList Performance When Handling Complex Data HOT 9
- [bug] item duplicated HOT 1
- Node Style HOT 1
- onItemTap is sent also when tapping on expansion handle HOT 2
- expandNode performance issue
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from animated_tree_view.