跳转到内容

#! /usr/bin/env markdown

Badge

Badge 是 Miuix 中的小型状态元素,用于将动态信息(例如未读消息数或待处理请求数)叠加到图标等锚点元素上。参照 Material 3,BadgedBoxBadge 相对其 content 定位;徽章可以是一个小圆点(仅图标),也可以包含简短文字。

引入

kotlin
import top.yukonga.miuix.kmp.basic.Badge
import top.yukonga.miuix.kmp.basic.BadgedBox
import top.yukonga.miuix.kmp.basic.BadgeDefaults

基本用法

BadgedBox 包裹锚点,并在其 badge 槽里提供一个 Badge。不带内容的 Badge 会渲染为一个小圆点:

kotlin
BadgedBox(badge = { Badge() }) {
    Icon(imageVector = MiuixIcons.Settings, contentDescription = "设置")
}

传入内容即可显示简短文字,例如未读数:

kotlin
BadgedBox(badge = { Badge { Text("99+") } }) {
    Icon(imageVector = MiuixIcons.Settings, contentDescription = "设置")
}

Badge

Badge 绘制徽章容器。不带 content 时是一个小圆点;带 content 时会扩大以容纳简短标签。

kotlin
@Composable
fun Badge(
    modifier: Modifier = Modifier,
    containerColor: Color = BadgeDefaults.containerColor,
    contentColor: Color = BadgeDefaults.contentColor,
    content: @Composable (RowScope.() -> Unit)? = null,
)
参数名类型说明默认值是否必须
modifierModifier应用于该徽章的修饰符Modifier
containerColorColor徽章的背景颜色BadgeDefaults.containerColor
contentColorColor徽章内部内容的首选颜色BadgeDefaults.contentColor
content@Composable (RowScope.() -> Unit)?渲染在徽章内部的可选内容null

BadgedBox

BadgedBox 是一个顶层布局,将 badge 相对其 content 定位。徽章被放置在锚点的顶端角落;其偏移会根据徽章是否带内容自动调整。

kotlin
@Composable
fun BadgedBox(
    badge: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    content: @Composable BoxScope.() -> Unit,
)
参数名类型说明默认值是否必须
badge@Composable BoxScope.() -> Unit要显示的徽章——通常是一个 Badge-
modifierModifier应用于该 BadgedBox 的修饰符Modifier
content@Composable BoxScope.() -> Unit徽章定位所依附的锚点内容-

BadgeDefaults

BadgeDefaults 提供徽章的默认尺寸与颜色。

kotlin
object BadgeDefaults {
    val Size = 6.dp
    val LargeSize = 16.dp

    val containerColor: Color
        @Composable get() = MiuixTheme.colorScheme.error

    val contentColor: Color
        @Composable get() = MiuixTheme.colorScheme.onError
}
名称类型说明默认值
SizeDp仅图标徽章(无内容)的尺寸6.dp
LargeSizeDp带内容徽章的尺寸16.dp
containerColorColor徽章的默认背景颜色MiuixTheme.colorScheme.error
contentColorColor徽章的默认内容颜色MiuixTheme.colorScheme.onError

变更日志

基于 Apache-2.0 许可发布