thangmam / dynamic_treeview Goto Github PK
View Code? Open in Web Editor NEWA Dynamic treeview that can be build using dynamic parent/child relationship
License: MIT License
A Dynamic treeview that can be build using dynamic parent/child relationship
License: MIT License
Below is the code I am using:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ListTile(...),
DynamicTreeView(
data: data,
config: Config(
parentTextStyle: kTextGreyNormal.copyWith(color: kColorPrimaryBlue),
rootId: "1",
childrenPaddingEdgeInsets: EdgeInsets.symmetric(vertical: 5.0,horizontal: 5.0),
parentPaddingEdgeInsets: EdgeInsets.only(left: 10, top: 0, bottom: 0)),
onTap: (key) {
//TODO: Close the tree view to its original
Provider.of<ProductListViewModel>(context).getProductListFromCategoryId(key['id']);
},
),
]
)
OnChildrenTap is not implemented in version dynamic_treeview: 1.0.0+2 the example shows that it is there, but the version on PUb doesn't contain that update...
I can't run dynamic_treeview
on my system because this library does not support null safety yet.
I hope next release will be supported
[✓] Flutter (Channel beta, 2.6.0-5.2.pre, on macOS 11.6 20G165 darwin-x64, locale en-TH)
• Flutter version 2.6.0-5.2.pre at /Users/sarit/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 400608f101 (6 weeks ago), 2021-09-15 15:50:26 -0700
• Engine revision 1d521d89d8
• Dart version 2.15.0 (build 2.15.0-82.2.beta)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at /Users/sarit/Library/Android/sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: /Users/sarit/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7784292/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.10.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2020.3)
• Android Studio at /Users/sarit/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7784292/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
[✓] Android Studio (version 2020.3)
• Android Studio at /Users/sarit/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7678000/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
[✓] VS Code (version 1.56.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (2 available)
• iPhone 13 (mobile) • EA48D2D1-93D8-4DF5-A3D3-B317D5988B83 • ios • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
• Chrome (web) • chrome • web-javascript • Google Chrome 95.0.4638.54
• No issues found!
I want to add an element to the root, but it is perceived as a parent. Although it has no children.
Hi,
I have the data coming from a webservice.
If my array is declared statically it works, but if I fill it in initState and call setState() it doesnt fill.
I've checked and the array content is the same in both ways.
You know why?
Thank you for you effort.
Cheers
Hi, nice to see this excellent library! and can all be expanded by default? thanks a lot.
Hi, I really like this treeview but when data is from a stream source it builds ok at the begining but no updates when datastream changes. Any idea on how to implement it?
Sorry if it is a newbie question...
By the way, I'm trying to use it on a list of Expenses and Incomes categories and subcategories I retrieve from Firestore database. It shows the list perfect and beautiful at the begining. But when I add a new category the tree does not rebuild as the former listView does.
Tree View disordered if id greater than 10.
I sugest you change like this:
_buildTreeView() {
var k = widget.data
.where((data) {
return data.getParentId() == widget.config.rootId;
})
.map((data) {
return data.getId();
})
.toSet()
.toList()
..sort((i, j) => int.parse(i).compareTo(int.parse(j)));
var widgets = List<ParentWidget>();
k.forEach((f) {
ParentWidget p = buildWidget(f, null);
if (p != null) widgets.add(p);
});
setState(() {
treeView = widgets;
});
}
dynamic_treeview/lib/dynamic_treeview.dart
Line 332 in 4cc73d0
children: widget.children
==> children: shouldExpand ? widget.children : []
when my tree became so large that the most nested node size overflows the width of the screen
and gives this error
Trailing widget consumes entire tile width. Please use a sized widget.
'package:flutter/src/material/list_tile.dart':
Failed assertion: line 1357 pos 7: 'tileWidth != trailingSize.width'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.