1、描述
可以附加在单个组件上用于信息标记的容器组件。支持单个子组件。
2、接口
方法1:Badge(value:{count: number, position?: BadgePosition, maxCount?: number, style:BadgeStyle})
方法2:Badge(value: {value: string, position?: BadgePosition, style: BadgeStyle})
3、参数
参数名 | 参数类型 | 必填 | 描述 |
count | number | 是 | 设置提醒消息数。说明:小于等于0时不显示信息标记。 |
position | BadgePosition | 否 | 设置提示点显示的位置。 |
maxCount | number | 否 | 最大消息数,超过最大消息数时仅显示maxCount+。 |
style | BadgeStyle | 是 | Badge组件可设置样式,支持设置文本颜色、尺寸、圆点颜色和尺寸。 |
value | string | 是 | 提示内容的文本字符串。 |
4、BadgePosition枚举说明:
名称 | 描述 |
RightTop | 圆点显示在右上角。 |
Right | 圆点显示在右侧纵向居中。 |
Left | 圆点显示在左侧纵向居中。 |
5、BadgeStyle对象说明:
名称 | 类型 | 必填 | 默认值 | 描述 |
color | ResourceColor | 否 | Color.White | 文本颜色。 |
fontSize | number | string | 否 | 10 | 文本大小。单位:vp。 |
badgeSize | number | string | 否 | 16 | Badge的大小。不支持百分比形式设置。单位:vp。 |
badgeColor | ResourceColor | 否 | Color.Red | Badge的颜色。 |
6、示例
import router from '@ohos.router'
@Entry
@Component
struct BadgePage {
@State message: string = '可以附加在单个组件上用于信息标记的容器组件。'
/**
* Tab菜单键
*/
@Builder
TabBuilder(index: number) {
Column() {
if (index == 2) {
Badge({ value: "", style: { badgeSize: 10, badgeColor: Color.Red }, position: BadgePosition.RightTop }) {
Image($r('app.media.icon'))
.width(30)
.height(30)
.margin({ bottom: 4 })
}
} else {
Image($r('app.media.icon'))
.width(30)
.height(30)
.margin({ bottom: 4 })
}
Text("Tab")
.fontColor('#182431')
.fontSize(20)
.fontWeight(500)
}.width("100%").height("100%").justifyContent(FlexAlign.Center)
}
build() {
Row() {
Scroll() {
Column() {
Text(this.message)
.fontSize(20)
.fontWeight(FontWeight.Bold)
.width("96%")
Blank(12)
Tabs() {
TabContent().tabBar(this.TabBuilder(0))
TabContent().tabBar(this.TabBuilder(1))
TabContent().tabBar(this.TabBuilder(2))
TabContent().tabBar(this.TabBuilder(3))
}.width("96%").height(60).backgroundColor('#F1F3F5')
Blank(12)
Column() {
Text("stringBadge").fontColor('#182431').fontSize(20).fontWeight(FontWeight.Bold)
List() {
ListItem() {
Text("stringBadgeList1").fontSize(20).fontColor(Color.White).padding({ left: 20 })
}
.width('100%')
.height(56)
.backgroundColor('#999999')
.borderRadius(24)
.align(Alignment.Start)
ListItem() {
Badge({
value: "New",
position: BadgePosition.Right,
style: { badgeSize: 20, badgeColor: '#FA2A2D' }
}) {
Text("stringBadgeList2")
.fontSize(20)
.fontColor(Color.White)
.margin({ right: 28 })
}.margin({ left: 20 })
}
.width('100%')
.height(56)
.backgroundColor('#999999')
.borderRadius(24)
.align(Alignment.Start)
.margin({ top: 10 })
}.width("96%").margin({ top: 10 })
}
Blank(12)
Column() {
List({ space: 10 }) {
ListItem() {
Row() {
Image($r('app.media.icon')).width(30).height(30).margin({ left: 20 })
Text("List01").fontColor(Color.White).fontSize(20).margin({ left: 12 })
Blank()
Image($r('app.media.icon')).width(30).height(30).margin({ right: 20 })
}.width("100%")
.height(56)
}
ListItem() {
Row() {
Image($r('app.media.icon')).width(30).height(30).margin({ left: 20 })
Text("List02").fontColor(Color.White).fontSize(20).margin({ left: 12 })
Blank()
Badge({
count: 1,
position: BadgePosition.Right,
style: { badgeSize: 20, badgeColor: '#FA2A2D' }
}) {
Text("")
}
Image($r('app.media.icon')).width(30).height(30).margin({ right: 20 })
}.width("100%")
.height(56)
}
ListItem() {
Row() {
Image($r('app.media.icon')).width(30).height(30).margin({ left: 20 })
Text("List03").fontColor(Color.White).fontSize(20).margin({ left: 12 })
Blank()
Image($r('app.media.icon')).width(30).height(30).margin({ right: 20 })
}.width("100%")
.height(56)
}
}.width("96%")
.divider({ strokeWidth: 0.5, color: Color.Black, startMargin: 12, endMargin: 12 })
.backgroundColor('#999999')
.borderRadius(24)
}
Blank(12)
Button("Badge文本文档")
.fontSize(20)
.backgroundColor('#007DFF')
.width('96%')
.onClick(() => {
// 处理点击事件逻辑
router.pushUrl({
url: "pages/containerComponents/badge/BadgeDesc",
})
})
}
.width('100%')
}
}
.padding({ top: 12, bottom: 12 })
}
}
7、效果图