415 MailList 邮件列表
用途
展示虚拟化邮件列表,包含未读粗体、星标、附件计数、多选与打开事件。
最小示例
var s data.ListState[string]
mails := []messaging.MailItem{{ID: "1", From: "Sakiko", Subject: "Second act", Unread: true, Attachments: 1}}
view := func(c *ui.Context) {
core.Use(c, core.Settings{})
if r := messaging.MailList(c, &s, mails, messaging.MailListOptions{}); r.Starred != "" {
mails[0].Starred = !mails[0].Starred
}
}
ui.Render(view, 400, 300, 1)参数
ListState[string] 保存滚动与选择;MailItem 包含必填 ID、From、Subject、Snippet、Time、Unread、Starred、Attachments。Height 默认 420 DIP,必须 ≥ 0;Disabled 默认 false。
状态
默认、聚焦和悬停状态沿用主题、密度与文字缩放;适用操作在自身或祖先禁用时停止处理。
事件
Changed() 表示选择变化;Opened 返回打开的邮件 ID;Starred 返回请求切换星标的 ID。调用方更新数据。
键盘操作
上下方向键、Home / End 移动选择;Enter 或双击打开;S 请求星标;Cmd/Ctrl+A 全选;Cmd/Ctrl 点击切换单项,Shift 点击选择范围。
限制
星标、已读更新、邮件下载与打开由调用方处理;列表只构建可见行。

