容器组件:角标组件,纵向拖动组件(HarmonyOS学习第四课【4.2】)

Badge(角标组件)

可以附加在单个组件上用于信息标记的容器组件。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

支持单个子组件。

说明

子组件类型:系统组件和自定义组件,支持渲染控制类型(if/else、ForEach和LazyForEach)。

接口

方法1: Badge(value: {count: number, position?: BadgePosition, maxCount?: number, style: BadgeStyle})

创建数字标记组件。

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名

参数类型

必填

默认值

参数描述

count

number

-

设置提醒消息数。

说明:

小于等于0时不显示信息标记。

取值范围:[-2147483648,2147483647],非整数时会舍去小数部分取整数部分,如5.5取5。

position

BadgePosition

BadgePosition.RightTop

设置提示点显示位置。

maxCount

number

99

最大消息数,超过最大消息时仅显示maxCount+。

style

BadgeStyle

-

Badge组件可设置样式,支持设置文本颜色、尺寸、圆点颜色和尺寸。

方法2: Badge(value: {value: string, position?: BadgePosition, style: BadgeStyle})

根据字符串创建标记组件。

从API version 9开始,该接口支持在ArkTS卡片中使用。

参数:

参数名

参数类型

必填

默认值

参数描述

value

string

-

提示内容的文本字符串。

position

BadgePosition

BadgePosition.RightTop

设置提示点显示位置。

style

BadgeStyle

-

Badge组件可设置样式,支持设置文本颜色、尺寸、圆点颜色和尺寸。

BadgePosition枚举说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

描述

RightTop

圆点显示在右上角。

Right

圆点显示在右侧纵向居中。

Left

圆点显示在左侧纵向居中。

BadgeStyle对象说明

从API version 9开始,该接口支持在ArkTS卡片中使用。

名称

类型

必填

默认值

描述

color

ResourceColor

Color.White

文本颜色。

fontSize

number | string

10

文本大小。

单位:vp

说明:

不支持设置百分比。

badgeSize

number | string

16

Badge的大小。不支持百分比形式设置。当设置为非法值时,按照默认值处理。

单位:vp

badgeColor

ResourceColor

Color.Red

Badge的颜色。

属性

支持通用属性。

事件

支持通用事件。

Badge 定义介绍

interface BadgeInterface {(value: BadgeParamWithNumber): BadgeAttribute;(value: BadgeParamWithString): BadgeAttribute;
}declare interface BadgeParam {position?: BadgePosition;style: BadgeStyle;
}declare interface BadgeParamWithNumber extends BadgeParam {count: number;maxCount?: number;
}declare interface BadgeParamWithString extends BadgeParam {value: string;
}declare interface BadgeParam {position?: BadgePosition;style: BadgeStyle;
}

Badge 的构造方法允许接收 BadgeParamWithNumber 和 BadgeParamWithString 两种类型的参数,它们都继承自 BadgeParam ,BadgeParam 参数说明如下:

  • position:设置 badge 的显示位置,BadgePosition 提供了以下 3 种位置:

    • Right: badge 显示在右侧纵向居中。
    • RightTop(默认值): badge 显示在右上角。
    • Left: badge 显示在左侧纵向居中。
  • style:设置 badge 的显示样式,BadgeStyle 样式参数说明如下:

    • color:设置 badge 的文本颜色,默认为白色。
    • fontSize:设置 badge 的文本字体大小,默认为 10 vp。
    • badgeSize:设置 badge 的显示大小。
    • badgeColor:设置 badge 的背景颜色,默认为红色。

    简单样例如下所示:

// xxx.ets
@Entry
@Component
struct BadgeExample {build() {Row() {Badge({value: ' ',position: BadgePosition.Left,                // 设置 badge 居左显示style: {badgeSize: 10, badgeColor: Color.Red}// 设置 badge 的显示样式}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")}.margin({left:20}).size({width: 100, height: 50})Badge({value: ' ',position: BadgePosition.Right,               // 设置 badge 居右显示style: {badgeSize: 10, badgeColor: Color.Red}// 设置 badge 的显示样式}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")}.margin({left:20}).size({width: 100, height: 50})Badge({value: ' ',position: BadgePosition.RightTop,            // 设置 badge 居右上角显示style: {badgeSize: 10, badgeColor: Color.Red}// 设置 badge 的显示样式}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")}.margin({left:20}).size({width: 100, height: 50})}}
}

BadgeParamWithNumber 可以根据数字创建提醒组件,各参数说明如下:

  • count:设置提醒消息数。
  • maxCount:设置提醒消息的最大数,超过最大消息时仅显示 maxCount+。

简单样例如下所示:

@Entry
@Component
struct BadgeExample {build() {Row() {Badge({count: 10,                       // 设置 badge 显示的数量maxCount: 100,                   // 设置 badge 显示的最大数量position: BadgePosition.RightTop,// 设置 badge 显示在右上角style: {badgeColor: Color.Red}   // 设置 badge 的显示样式}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")}.size({width: 100, height: 50})Badge({count: 110,                      // 设置 badge 显示的数量maxCount: 99,                    // 设置 badge 显示的最大数量position: BadgePosition.RightTop,// 设置 badge 显示在右上角style: {badgeColor: Color.Red}   // 设置 badge 的显示样式}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")}.margin({left:20}).size({width: 100, height: 50})}}
}


 

BadgeParamWithString 可以根据字符串创建提醒组件,各参数说明如下:

  • value:提示内容的文本字符串。

简单样例如下所示:

Badge({value: "aaa",                    // 设置 badge 的显示文本position: BadgePosition.RightTop,// 设置 badge 显示在右上角style: {badgeColor: Color.Red}   // 设置 badge 的显示样式
}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")
}
.size({width: 100, height: 50})Badge({value: "bbb",                    // 设置 badge 的显示文本position: BadgePosition.RightTop,// 设置 badge 显示在右上角style: {badgeColor: Color.Red}   // 设置 badge 的显示样式
}) {Text("Badge").size({width: 100, height: 50}).fontSize(20).backgroundColor("#aabbcc")
}
.size({width: 100, height: 50})

案例参考

// xxx.ets
@Entry
@Component
struct BadgeExample {@Builder TabBuilder(index: number) {Column() {if (index === 2) {Badge({value: '',style: { badgeSize: 6, badgeColor: '#FA2A2D' }}) {Image('/common/public_icon_off.svg').width(24).height(24)}.width(24).height(24).margin({ bottom: 4 })} else {Image('/common/public_icon_off.svg').width(24).height(24).margin({ bottom: 4 })}Text('Tab').fontColor('#182431').fontSize(10).fontWeight(500).lineHeight(14)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}@Builder itemBuilder(value: string) {Row() {Image('common/public_icon.svg').width(32).height(32).opacity(0.6)Text(value).width(177).height(21).margin({ left: 15, right: 76 }).textAlign(TextAlign.Start).fontColor('#182431').fontWeight(500).fontSize(16).opacity(0.9)Image('common/public_icon_arrow_right.svg').width(12).height(24).opacity(0.6)}.width('100%').padding({ left: 12, right: 12 }).height(56)}build() {Column() {Text('dotsBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24)Tabs() {TabContent().tabBar(this.TabBuilder(0))TabContent().tabBar(this.TabBuilder(1))TabContent().tabBar(this.TabBuilder(2))TabContent().tabBar(this.TabBuilder(3))}.width(360).height(56).backgroundColor('#F1F3F5')Column() {Text('stringBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24)List({ space: 12 }) {ListItem() {Text('list1').fontSize(14).fontColor('#182431').margin({ left: 12 })}.width('100%').height(56).backgroundColor('#FFFFFF').borderRadius(24).align(Alignment.Start)ListItem() {Badge({value: 'New',position: BadgePosition.Right,style: { badgeSize: 16, badgeColor: '#FA2A2D' }}) {Text('list2').width(27).height(19).fontSize(14).fontColor('#182431')}.width(49.5).height(19).margin({ left: 12 })}.width('100%').height(56).backgroundColor('#FFFFFF').borderRadius(24).align(Alignment.Start)}.width(336)Text('numberBadge').fontSize(18).fontColor('#182431').fontWeight(500).margin(24)List() {ListItem() {this.itemBuilder('list1')}ListItem() {Row() {Image('common/public_icon.svg').width(32).height(32).opacity(0.6)Badge({count: 1,position: BadgePosition.Right,style: { badgeSize: 16, badgeColor: '#FA2A2D' }}) {Text('list2').width(177).height(21).textAlign(TextAlign.Start).fontColor('#182431').fontWeight(500).fontSize(16).opacity(0.9)}.width(240).height(21).margin({ left: 15, right: 11 })Image('common/public_icon_arrow_right.svg').width(12).height(24).opacity(0.6)}.width('100%').padding({ left: 12, right: 12 }).height(56)}ListItem() {this.itemBuilder('list3')}ListItem() {this.itemBuilder('list4')}}.width(336).height(232).backgroundColor('#FFFFFF').borderRadius(24).padding({ top: 4, bottom: 4 }).divider({ strokeWidth: 0.5, color: 'rgba(0,0,0,0.1)', startMargin: 60, endMargin: 12 })}.width('100%').backgroundColor('#F1F3F5').padding({ bottom: 12 })}.width('100%')}
}

@Entry
@Component
struct ComponentTest {@State counts: number = 1@State message: string = 'new'build() {Flex({ justifyContent: FlexAlign.SpaceAround }) {Badge({count: this.counts,maxCount: 99,style: { color: 0xFFFFFF, fontSize: 16, badgeSize: 20, badgeColor: Color.Red }}) {Button('message').onClick(() => {this.counts++}).width(100).height(50).backgroundColor(0x317aff)}.width(100).height(50)Badge({value: this.message,style: { color: 0xFFFFFF, fontSize: 9, badgeSize: 20, badgeColor: Color.Blue }}) {Text('message').width(80).height(50).fontSize(18).lineHeight(37).borderRadius(10).textAlign(TextAlign.Center).backgroundColor(Color.Pink)}.width(80).height(50)Badge({value: ' ',position: BadgePosition.RightTop,style: { badgeSize: 6, badgeColor: Color.Red }}) {Text('message').width(90).height(50).fontSize(18).lineHeight(37).borderRadius(10).textAlign(TextAlign.Center).backgroundColor(Color.Pink)}.width(90).height(50)}.width('100%').margin({ top: 10 })}
}

纵向拖动组件

ColumnSplit

将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

子组件

可以包含子组件。

接口

ColumnSplit()

属性

名称

参数类型

描述

resizeable

boolean

分割线是否可拖拽,默认为false。

说明

与RowSplit相同,ColumnSplit的分割线最小能拖动到刚好包含子组件。

在真机中查看拖动效果,预览器中不支持拖动。

不支持clip、margin通用属性。

示例

@Entry
@Component
struct ColumnSplitExample {build() {Column(){Text('The secant line can be dragged').fontSize(9).fontColor(0xCCCCCC).width('90%')ColumnSplit() {Text('1').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)Text('2').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)Text('3').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)Text('4').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)Text('5').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)}.borderWidth(1).resizeable(true) // 可拖动.width('90%').height('60%')}.width('100%')}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win端交叉编译鸿蒙Ohos Native层第三方库流程

1. 概述 鸿蒙端SDK开发需要依赖使用到的三方库(如OpenCV、其他C库等),以下为Windows端交叉编译Ohos端三方库流程 2. 准备工作 与Android NDK交叉编译相类似,我们首先需要下载OpenHarmony NDK(包含在OpenHarmony SDK中),这里笔者使用IDE中自…

Online RL + IL : Active Policy Improvement from Multiple Black-box Oracles

ICML 2023 paper code 紧接上一篇MAMBA,本文在同种问题设定下的在线模仿学习方法。 Intro 文章提出了一种新的模仿学习算法,名为 MAPS(Max-aggregation Active Policy Selection)和其变体 MAPS-SE(Max-aggregation A…

SSL证书对于网络安全的重要作用

SSL证书是一种数字证书,它通过加密技术确保了客户端(如浏览器)与服务器之间的数据传输安全。当一个网站安装了SSL证书后,用户在浏览器地址栏中可以观察到HTTPS(超文本传输安全协议)前缀和挂锁图标&#xff…

点量云流分享:关于实时渲染云推流技术

提到云串流或者云推流很多人可能和游戏关联起来,其实这个技术的应用领域不仅仅是游戏,还有云上旅游、考古、智慧园区、智慧城市、虚拟仿真等等行业。其解决的问题是将一些大型的3D应用程序放在云端,程序在运行的时候也是在云端,这…

可视化大屏C位图:生产线,状态一目了然。

在可视化大屏中,将生产线作为C位图(核心位图)具有以下价值: 实时监控 生产线作为C位图可以实时展示生产线上的各个环节和工艺的运行状态。通过C位图,操作员可以直观地了解生产线的整体运行情况,及时发现异…

数仓建模理论 之 维度建模

说起维度建模,你不得不知道以下几个概念:事实表、维度表、星型模型、雪花模型、星座模型 维度建模 Ralph Kimball推崇数据集市的集合为数据仓库,同时也提出了对数据集市的维度建模,将数据仓库中的表划分为事实表、维度表两种类型…

为什么状态机最好要采用独热码

在状态机的编码方式中,我们常用到三种编码方式,分别是二进制编码、格雷码、独热码。 二进制编码:也称连续编码,属于压缩编码方式,可以使用较少的触发器对应更多的状态; 格雷码:属于压缩编码方…

uniapp微信小程序使用vscode代替HBuilderX开发uniapp微信小程序并且vscode改动代码微信开发者工具能实时更新

前言 最近公司开发新的小程序项目,经调研综合所有人员考虑,用uni-app Vue3tsvite技术栈开发;而官方推荐使用HBuilderX开发,而考虑到目前公司所有前端人员对VsCode更熟悉,故此总结了一下uniapp项目使用vscode代替HBuild…

什么是元宇宙?

元宇宙(Metaverse)是一个由虚拟现实(VR)、增强现实(AR)、区块链、人工智能(AI)等多种先进技术融合构建的数字化虚拟世界。这个世界不仅限于一个简单的虚拟环境,而是一个能…

Flink ValueStateDescriptor使用实例

在Apache Flink中,ValueStateDescriptor 是用于定义状态的一种数据结构,它允许你为每个键(key)存储一个值(value)。状态是 Flink 流处理模型的核心概念之一,它允许你在任务失败和恢复时保持数据…

网站开发初学者指南:2024年最新解读

在信息交流迅速的时代,网页承载着大量的信息,无论你知道还是不知道,所以你知道什么是网站开发吗?学习网站开发需要什么基本技能?本文将从网站开发阶段、网站开发技能、网站开发类型等角度进行分析,帮助您更…

40-2 了解与安装堡垒机

堡垒机 一、堡垒机与 JumpServer 1. 堡垒机 定义: 堡垒机(Bastion Host)是一种网络安全设备,用于保障网络和数据不受外部和内部用户的入侵和破坏。它通过各种技术手段监控和记录运维人员对网络内各种设备的操作行为,以便集中报警、及时处理和审计定责。功能: 权限控制:…

Java 自动生成数据库设计文档

背景&#xff1a;有时候急需要数据库设计文档&#xff0c;手写太麻烦&#xff0c;这里介绍一款开源组件&#xff0c;可以自动根据数据库连接生成数据库设计文档 废话不多说&#xff0c;直接上代码 导入maven包 <dependency><groupId>org.freemarker</groupId>…

Linux服务器的资源分配和使用情况分析相关指令

服务器资源分配情况 CPU资源 CPU型号: cat /proc/cpuinfo | grep "model name" | cut -f2 -d: | uniq -c输出示例&#xff1a;1 Intel(R) Xeon(R) CPU E5-2697 v4 2.30GHz 物理CPU核心数: cat /proc/cpuinfo | grep "cpu cores" | uniq输出示例&#xff…

数学建模(科普)

数学建模&#xff0c;就是根据实际问题来建立数学模型&#xff0c;对数学模型来进行求解&#xff0c;然后根据结果去解决实际问题。 当需要从定量的角度分析和研究一个实际问题时&#xff0c;人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上…

数据分析案例-印度美食数据可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

“安”网守护,“乐享”服务——革新教育行业运维与安全体验,锐捷发布两大创新方案

5月11日,锐捷网络举办以“’安‘网联动, ’乐享‘运维”为主题的线上发布会,正式发布了锐捷乐享教育订阅服务方案,以及以新一代智能安全网关为核心的安全防护解决方案。 锐捷网络教育系统部总经理马雪峰为发布会致开场辞,他指出,在数字化浪潮席卷全球的今天,教育行业正进来前所…

未来已来:Spring Cloud引领微服务新纪元

文章目录 1. 引言1.1 微服务架构的兴起与挑战1.2 引入Spring Cloud作为微服务解决方案的重要性 2. 背景介绍2.1 微服务架构概述2.2 Spring Cloud的定位2.3 Spring Cloud特性概览 3. Spring Cloud核心组件3.1 Eureka - 服务发现3.2 Hystrix - 断路器3.3 Ribbon - 客户端负载均衡…

Vue框架—快速入门

目录 &#x1f516; 认识VUE &#x1f516; 第一个Vue程序 &#x1f516; Vue指令 &#x1f3f7;️v-text &#x1f3f7;️v-html &#x1f3f7;️v-model &#x1f3f7;️v-bind &#x1f3f7;️v-on &#x1f3f7;️v-if / v-show &#x1f516; 认识VUE ▐ 在学习…

食品安全管理员有什么样的发展前景

在高速发展的食品工业中居安思危&#xff0c;着眼于国内、国际食品贸易前景&#xff0c;建立一个有效的功能健全的食品安全控制体系&#xff0c;从本质上解决危及食品安全的自然因素、人为因素、社会及技术因素&#xff0c;是从事食品安全管理工作职业人的天职。 食品的安全性关…