Jetpack Compose组件-徽章(Badge)


Jetpack Compose组件-徽章(Badge)

徽章(Badge)

Badge 是一个可以包含动态信息的组件,例如是否存在新通知或许多未处理请求。徽章可以是纯图标或包含短文本。一般不单独使用,使用BadgeBox 将Badge放置在组件的右上角。

@Composable
fun Badge(
    // 修饰符
    modifier: Modifier = Modifier,
    // 背景颜色
    backgroundColor: Color = MaterialTheme.colors.error,
    // 内容颜色
    contentColor: Color = contentColorFor(backgroundColor),
    content: (@Composable RowScope.() -> Unit)? = null
): Unit
var count by remember { mutableStateOf(0) }
Card(onClick = { count++ }) {
    Text("Clickable card content with count: $count")
}

BadgeBox

@Composable
fun BadgedBox(
	// 徽章
    badge: @Composable BoxScope.() -> Unit,
    // 修饰符
    modifier: Modifier = Modifier,
    content: @Composable BoxScope.() -> Unit
): Unit
BadgedBox(badge = {
    Badge {
        val badgeNumber = "8"
        Text(
            badgeNumber,
            modifier = Modifier.semantics {
                contentDescription = "$badgeNumber new notifications"
            }
        )
    }
}) {
    Icon(
        Icons.Filled.Favorite,
        contentDescription = "Favorite"
    )
}

文章作者: Vinx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Vinx !
 上一篇
Jetpack Compose组件-分割线(Divider) Jetpack Compose组件-分割线(Divider)
Jetpack Compose组件-分割线(Divider) 分割线(Divider) Divider是将列表和布局中的内容分组的细线。 @Composable fun Divider( // 修饰符 modifie
下一篇 
Jetpack Compose组件-卡片(Card) Jetpack Compose组件-卡片(Card)
Jetpack Compose组件-卡片(Card) 卡片(Card) Card 是 Compose 中一个布局组件,我们用它可以来创造出一些类似于卡片界面 @Composable @NonRestartableComposabl
  目录