容器组件:角标组件,纵向拖动组件(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,一经查实,立即删除!

相关文章

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…

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

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

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

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

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

&#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 ▐ 在学习…

Spring Security实现用户认证一:简单示例

Spring Security实现用户认证一&#xff1a;简单示例 1 原理1.1 用户认证怎么进行和保存的&#xff1f;认证流程SecurityContext保存 2 创建简单的登录认证示例2.1 pom.xml依赖添加2.2 application.yaml配置2.3 创建WebSecurityConfig配置类2.4 测试 1 原理 Spring Security是…

【AI绘画】Stable diffusion初级教程08——提示词(prompt)该如何写

今天是一篇干货&#xff0c;干的喝水的那种…… 写之前呢&#xff0c;先给大家打个比方&#xff1a;现在刚入门学习SD的相当于刚上学的小学生&#xff0c;提示词就相当于作文&#xff0c;还是英语作文&#xff0c;如果你总是抄抄抄&#xff0c;不知道作文的要点&#xff0c;语法…

全球知名哲学家思想家颜廷利:将人生黑暗视为一种机遇

在时间的长河中&#xff0c;我们短暂的人生不过是眨眼间的光景。然而&#xff0c;正是这短暂的旅程给予了我们无限的可能性和转变的契机。我们应该勇敢地面对生活中的暗夜&#xff0c;将其视作成长的土壤&#xff0c;让自我在其中焕发出独特的光辉。 当我们在生命的历程中暂停脚…

React 状态管理库深度对比:在做技术选型的时候如何选择合适的状态库,nolan出品

掘金链接&#xff1a;https://juejin.cn/post/7368288987642232872 1,简介 在状态共享这方面&#xff0c;不像 Vuex&#xff0c;React 的官方并没有强力推荐某种封装方案&#xff0c;所以 React 的状态管理工具五花八门&#xff0c;百花齐放&#xff0c; react-redux、dva、C…

【Python】语句与众所周知【自我维护版】

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇博客是在之前的基础上进行的维护 目录 条…

Find My资讯|苹果 iOS 17.5 率先执行跨平台反跟踪器标准

苹果和谷歌公司于 2023 年 5 月宣布推出“检测预期外位置追踪器”&#xff08;Detecting Unwanted Location Trackers&#xff09;行业标准&#xff0c;经过 1 年多的打磨之后&#xff0c;该标准目前已通过 iOS 17.5 部署到 iPhone 上。谷歌也将为运行 Android 6.0 或更高版本的…

多版本cuda安装与切换

本教程默认你熟练安装cuda&#xff0c;不清楚怎么安装可以看其他安装教程 1.确定下载需要的版本 找到你要安装的版本&#xff0c;不能高于你显卡支持的高版本 相关链接&#xff1a; CUDA Toolkit Archive | NVIDIA Developer NVIDIA控制面板--帮助--组件 NVCUDA64.DLL表示…

React 第三十八章 React 中的位运算

位运算是一种计算机编程中常用的操作&#xff0c;它直接对二进制位进行操作。二进制&#xff0c;指的就是以二为底的一种计数方式&#xff0c;常见的还有八进制、十进制、十六进制。 十进制0123456789101112131415二进制0000000100100011010001010110011110001001101010111100…