快速开始
最小示例
kotlin
import top.lhgb.ui.button.LhButton
import top.lhgb.ui.button.LhButtonType
import top.lhgb.ui.theme.LhTheme
@Composable
fun Demo() {
LhTheme {
LhButton(
type = LhButtonType.Primary,
onClick = { /* 处理点击 */ },
) {
Text("主要按钮")
}
}
}LhTheme 是主题容器,内部所有 Lh 组件自动消费令牌;不包裹时回退明色色板。
类型与尺寸
kotlin
// 六种类型
LhButton(type = LhButtonType.Default, onClick = {}) { Text("默认") }
LhButton(type = LhButtonType.Primary, onClick = {}) { Text("主要") }
LhButton(type = LhButtonType.Success, onClick = {}) { Text("成功") }
LhButton(type = LhButtonType.Warning, onClick = {}) { Text("警告") }
LhButton(type = LhButtonType.Danger, onClick = {}) { Text("危险") }
LhButton(type = LhButtonType.Info, onClick = {}) { Text("信息") }
// 三种尺寸
LhButton(size = LhButtonSize.Small, onClick = {}) { Text("小型") }
LhButton(size = LhButtonSize.Medium, onClick = {}) { Text("中型") }
LhButton(size = LhButtonSize.Large, onClick = {}) { Text("大型") }状态
kotlin
// 禁用:不响应点击,呈现禁用样式
LhButton(disabled = true, onClick = {}) { Text("禁用") }
// 加载中:显示指示器,不触发 onClick
LhButton(loading = true, onClick = {}) { Text("加载中") }
// 两者共存:按禁用优先处理(黄金用例 disabled-precedes-loading)
LhButton(disabled = true, loading = true, onClick = {}) { Text("禁用优先") }图标与花纹底
kotlin
// 图标名按本地图标体系解析(见 LhButtonIcons,未登记名不绘制)
LhButton(type = LhButtonType.Primary, icon = "search", onClick = {}) { Text("搜索") }
// 国风花纹底纹(消费 color.decoration 令牌)
LhButton(type = LhButtonType.Primary, bgPattern = true, onClick = {}) { Text("花纹底") }明暗主题
kotlin
val isDark by remember { mutableStateOf(false) }
LhTheme(isDark = isDark) {
// 内部所有组件自动切换暗色令牌(core 预计算值,无运行时调色)
}原生文档模块
除本网页文档外,仓内还有一套安卓原生文档模块(:docsui):文档页 1:1 对齐本站结构,但预览是真 Compose 实时渲染、可交互的(按钮可点、输入可打字、弹窗能弹出),而非静态 HTML 模拟。
拖入即用:任意安卓工程依赖后,一行 LhDocs.launch(context) 即可打开完整文档(14 组件页 + 5 指南页 + 明暗切换 + 实时预览):
kotlin
// build.gradle.kts
implementation(project(":docsui")) // 或 Maven 坐标 top.lhgb.ui:docsui
// 任意入口(如「组件文档」按钮的点击回调)
LhDocs.launch(context)库的 manifest 自动合并一个 exported = false 的 LhDocsActivity,不给宿主注入启动器图标。
独立打包::docsapp 是极薄的 application 模块(只有一个 Activity),单独打包即得「lh-ui 文档」APP:
bash
./gradlew :docsapp:installDebug组件示例预览
原生 UI 无法在浏览器实时渲染,本站用内联静态 HTML 手机框模拟器展示外观:
Android(Compose)外观的 HTML 模拟预览,非真机渲染;样式值全部取自 core 令牌快照,与真机同源同值。真机外观以 @Preview 与设备截图为准。
模拟器的暗色与站点联动:右上角切换主题,手机框内颜色即变(暗色令牌由 core 预计算)。