Flutter Widget显示嵌套的树状结构?

时间:2018-10-09 17:31:56

标签: user-interface tree treeview flutter

我们有一个N层(最大大约10左右)嵌套的数据结构,基本上类似于文件夹布局..

任何级别的每个节点都是要显示的Mime类型的内容或URL ..

我的问题实际上非常简单..是否有任何可用的Fluter Widget可以显示这种类型的结构-允许在任何父级进行通用的“打开/关闭”等操作?

这似乎是股票工具箱中没有的非常基本的UI元素,但我没有运气找到一个..

TIA!

/史蒂夫

4 个答案:

答案 0 :(得分:1)

参加聚会很晚。我也一直在寻找用于flutter项目的树形结构,但找不到适合我需要的树形结构。因此,我创建了一个包dynamic_treeview。建立树状视图的父子关系。看看这是否满足您的需求。让我知道你们的想法。谢谢

答案 1 :(得分:0)

有一个自定义组件可以满足您的需求:Screenshot Preview

https://github.com/AndrewTran2018/flutter-piggy-treeview

答案 2 :(得分:0)

在过去的几周中,我一直在研究TreeView小部件,并提出了一个基本结构。现在可以在pub中使用它。一旦您真正知道如何做,就很容易做到。我必须承认文档从来都不是我的强项,但是如果有人对此有任何疑问,只需在Github页面上添加一个问题即可。

也欢迎任何改进项目的建议。

示例代码

假设这是我们要使用TreeView小部件实现的目录结构

Desktop
|-- documents
|   |-- Resume.docx
|   |-- Billing-Info.docx
|-- MeetingReport.xls
|-- MeetingReport.pdf
|-- Demo.zip

在此示例中

  1. Resume.docx Billing-Info.docx 是具有文档作为Child的{​​{1}}小部件。
  2. 文档 MeetingReport.xls MeetingReport.xls Demo.zip Parent 桌面作为Child小部件的小部件。
Parent

这根本不会产生任何幻想。但是您可以传递所有复杂的窗口小部件来代替所有 var treeView = TreeView( parentList: [ Parent( parent: Text('Desktop'), childList: ChildList( children: [ Parent( parent: Text('documents'), childList: ChildList( children: [ Text('Resume.docx'), Text('Billing-Info.docx'), ], ), ), Text('MeetingReport.xls'), Text('MeetingReport.pdf'), Text('Demo.zip'), ], ), ), ], ); 小部件,并且仍然可以使用。

使用Text的应用程序的屏幕抓取

答案 3 :(得分:0)

选中flutter_simple_treeview。这是a demo