
在进行UI设计时,我们经常需要为图标、按钮或列表项的角落添加小的提示,例如红点、新消息数量或状态标签等。这时候,Badge组件就能派上用场。
如果你需要一个简洁、优雅且可灵活配置的信息标记功能,Badge组件是官方提供的理想选择。
Badge组件简介:
Badge是一个“信息标记容器组件”,可以附加在任何指定的子组件上,用于提供提示。它可以显示红点、数字(1~99+)以及文本(如”New”、”Hot”等)。它支持位置设置、样式自定义,并能根据不同的数据类型进行不同的展示,非常适合用于复杂场景下的状态提示。
基本用法示例:
接下来我们通过三个小案例来详细了解Badge组件的使用方法。
案例一:红点提示
css
Badge({
value: ”,
style: {
badgeSize: 6, // 设置圆点直径为6
badgeColor: ‘FA2A2D’ // 设置红点颜色为红色
}
}) {
Image(‘/common/public_icon_off.svg’)
.width(24)
.height(24)
这种场景适用于有无状态表示,例如新消息的提醒、开关状态变更等。
案例二:文字提示
css
Badge({
value: ‘New’,
position: BadgePosition.Right,
style: {
badgeSize: 16,
badgeColor: ‘FA2A2D’
}
}) {
Text(‘列表项’)
.fontSize(14)
.fontColor(‘182431’)
这个案例更适合用于显示文字标签,例如“NEW”、“HOT”、“升级”、“试用”等,跟随组件一起展示。
案例三:数字提示
css
Badge({
count: 88,
maxCount: 99,
position: BadgePosition.Right,
style: {
badgeSize: 16,
badgeColor: ‘FA2A2D’
}
}) {
Image(‘common/public_icon.svg’)
.width(32)
.height(32)
当count超过maxCount后,会自动变成99+,这种设计非常适合社交消息、系统通知等提醒场景。
核心参数解释:
value:传入字符串作为内容。
count:传入数字作为提醒数量。
maxCount:显示上限,超过显示“+”。
position:标记的位置。
style:样式对象,包括badgeSize(标记直径)、badgeColor(背景色)、color(字体颜色)、fontSize(文本大小)、fontWeight(字体粗细)、borderColor(边框颜色)和borderWidth(边框宽度)等字段。
从API v12开始,Badge的显隐还带有scale动效,默认开启。只要动态控制count或value,就能自动执行缩放效果。
注意事项:
1. Badge只支持包裹一个子组件(如图标、文字等)。
2. 可以动态控制count和value来触发显隐。
3. Badge是个装饰性组件,不会影响内部子组件的结构。
4. 当value为”时,默认只显示红点,不展示文本。
5. 不建议对Badge的子组件设置padding影响布局,可以用外部容器包一层做空间控制。
使用建议:
1. 如果只想要一个小红点状态提示,使用value: ”是最省事的方式。
2. 如果要提示数量,使用count和maxCount组合。
3. 如果希望用户明确看到变化,使用scale动效的显隐可以提升交互感知。
4. Badge组件在搭配导航栏、列表项、图标按钮时都非常适用。
Badge是HarmonyOS ArkUI提供的一个非常轻巧但功能强大的提醒类组件,应用场百家争鸣非常广泛。如果你正在做一个多页面结构或内容多状态变化频繁的界面,这个组件将是一个不可或缺的选择。
