跳到主要内容
界面图谱Interface Atlas
☰
EN
组件Data Display / Navigation

树形控件

Tree View

别名:树形列表文件树目录树树结构tree

这是什么

以嵌套分支展示层级结构的可展开列表,每层节点可折叠或展开,子节点缩进排布于父节点之下。适合文件目录、组织架构、分类体系等天然成树的数据;节点可单选或多选,展开状态与选中状态相互独立。

名词辨析

「树」有时也指思维导图或组织架构图;本词条专指可展开、可选择的列表式树形控件。

交互实验室

试一试,再决定怎么用

展开与折叠若干分支,用方向键在节点间移动并选中一个深层节点。

正在加载实验室…

使用时关注什么

  • 01展开状态与选中状态相互独立
  • 02键盘可在父子与兄弟节点间连续移动

✓ 适用场景

  • 数据天然分层,如目录、组织架构、分类树
  • 需要折叠分支以管理大量同级节点
  • 层级关系本身是信息的一部分

✕ 不适用场景

  • 只有两层且每层几项,用 accordion 或分组列表
  • 层级是导航框架而非内容,用 sidebar 或 menu
  • 扁平长列表更适合,用 table 或 list

常见形式

单选树

Single select

同时只有一个节点被选中,常配合详情面板

多选树

Multi select

可勾选多个节点,父节点支持半选态

文件树

File tree

带类型图标的目录树,最常见的产品形态

实现要点

padding-leftborder-lefttransform

子层级用递归缩进(padding-left 或 margin-left)表达深度,也可用竖向参考线辅助阅读。展开指示是小三角或加减号,旋转或切换图标表达状态;折叠时隐藏子树但保留 DOM 语义。键盘遵循 roving tabindex,方向键在可见节点间移动。

平台 API

role="tree"role="treeitem"aria-expanded

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
ARIA APGTree View
Radix PrimitivesCollapsible
MUITreeView

相关概念

容易混淆

手风琴Accordion

accordion 是并列分区的开合,tree-view 表达任意深度的父子层级

菜单Menu

menu 用于命令与导航动作,tree-view 用于浏览并选择层级数据

可搭配的风格

参考来源

Markdown 版(给 Agent) · JSON