Skip to content

Cell 单元格 ​

列表单元格,图标 / 标题 + 描述 / 右值 + 箭头的三段式布局,常与列表组合使用。

契约源:lh-ui-core/specs/cell.json · 黄金用例:cases/cell.json(6 条,已翻译为 JVM 单测 + Compose UI Test)

基本用法 ​

9:41Cell
标题文字
右侧值
带描述的标题
描述文字
值
*必填项
详细

HTML 模拟预览(Android / Compose 外观),非真机渲染

kotlin
LhCell(
  title = "带描述的标题",
  label = "描述文字",
  value = "值",
  isLink = true,
  onClick = { /* 跳转 */ },
)

必填与链接 ​

required 在标题前绘制红色星号(color.danger.default);isLink 在末尾绘制右箭头图标。

9:41Cell 变体
*必填
箭头 →
无边框
值

HTML 模拟预览(Android / Compose 外观),非真机渲染

API ​

Props ​

属性说明类型默认值
title标题(主文字)String?null
modifier修饰符ModifierModifier
value右侧值(次文字,右对齐)String?null
label标题下方的说明文字String?null
bordered是否绘制底部分隔线(color.border.lighter)Booleantrue
clickable是否可点击;为 true 时显示右侧指示箭头并响应点击Booleanfalse
required是否在标题前显示必填红星(color.danger.default)Booleanfalse
icon左侧图标名(本地图标体系);空时不绘制String?null
onClick点击回调;clickable 为 false 时不触发(() -> Unit)?null
titleContent标题内容(覆盖 title,spec 的 default 插槽)@Composable (() -> Unit)?null
valueContent右侧值内容(覆盖 value,spec 的 value 插槽)@Composable (() -> Unit)?null

clickable 同时控制「右侧指示箭头是否绘制」与「整行是否响应点击」——只有 clickable = true 且 onClick 非空时点击才触发。

令牌对照 ​

令牌用途
cell.paddingVertical纵向内边距(spacing.md 引用)
cell.paddingHorizontal横向内边距(spacing.md)
cell.fontSizeTitle / cell.fontSizeLabel / cell.fontSizeValue标题 / 描述 / 值字号
cell.gap图标与标题间距(spacing.xs)
icon.size.medium左侧图标与指示箭头尺寸
cell.borderWidth底分隔线宽度
typography.lineHeight.primary文字行高
color.text.{primary,secondary}标题 / 描述 / 值颜色
color.danger.default必填红星
color.border.lighter底分隔线

黄金用例对照 ​

case id断言本地测试
title-and-value-render标题与右值渲染文字LhCellTest.title_and_value_render(Compose UI Test)
label-renders-secondary-tonelabel 取次要文字色令牌LhCellDefaultsTest.label_uses_secondary_text_token
required-uses-danger-token必填标记取危险色令牌LhCellDefaultsTest.required_uses_danger_token
bordered-emits-line-command分隔线消费描边令牌LhCellDefaultsTest.bordered_uses_border_lighter_token
clickable-emits-onclick点击触发 onClickLhCellTest.clickable_emits_onClick
not-clickable-no-onclick禁用态不触发LhCellTest.not_clickable_no_onClick
bash
./gradlew :components:cell:test                              # JVM 部分
./gradlew :components:cell:connectedAndroidTest              # 交互部分(需设备)