Files
MujicaUI/docs/components/077-description-list.md
T

46 lines
1.5 KiB
Markdown

# 077 DescriptionList · 描述列表
## 用途
以名称与值的形式展示详情,支持多列、跨列与复制值。容器宽度不足时自动减少列数,最窄时为单列。
## 最小示例
```go
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
data.DescriptionList(c, []data.DescriptionItem{
{Label: "Archivist", Value: "Sister Agnès", Copyable: true},
{Label: "Shelf", Value: "North vault, row 7"},
{Label: "Seal", Value: "Wine-red wax", Span: -1},
}, data.DescriptionListOptions{})
}
ui.Render(view, 400, 300, 1)
```
## 参数
`func DescriptionList(c *ui.Context, items []DescriptionItem, opts DescriptionListOptions) DescriptionListView`。`DescriptionItem` 字段:`Label`、`Value`、`Span`(跨列数,负数跨整行)、`Copyable`。
| 字段 | 类型 | 默认值 | 含义 |
| --- | --- | --- | --- |
| `Columns` | `int` | 2 | 最多列数。 |
| `MinColumnWidth` | `float32` | 220 | 每列最小宽度(DIP);容器放不下时减少列数。 |
## 状态
默认、复制按钮悬停与聚焦、已复制(勾选图标 1.5 秒,并向读屏软件播报“已复制”)。
## 事件
`DescriptionListView.Copied()` 返回本帧被复制项的下标。
## 键盘操作
- Tab 到达每个复制按钮(名称为“复制 + 标签”),Enter/Space 复制。
## 限制
- 列数根据上一帧的宽度计算,宽度变化后在下一帧重新排列(组件会立即请求该帧)。
- 复制使用 MyGo 剪贴板接口,只写入纯文本。