【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)

简介: 【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)

前言


Rating组件:提供在给定范围内选择评分的组件。

RichText组件:富文本组件,解析并显示HTML格式文本。


一、Rating组件


提供在给定范围内选择评分的组件。

说明

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


1.1 子组件


1.2 接口

Rating(options?: { rating: number, indicator?: boolean })


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

参数

参数名:rating,参数类型:number,参数是否必填:是,参数作用:设置并接收评分值。默认值:0

取值范围: [0, stars],规定:小于0取0,大于stars取最大值stars。

参数名:indicator,参数类型:boolean,参数是否必填:否,参数作用:设置评分组件作为指示器使用,不可改变评分。

默认值:false, 可进行评分

说明:

indicator=true时,默认组件高度height=12.0vp,组件width=height * stars。

indicator=false时,默认组件高度height=28.0vp,组件width=height * stars。


1.2 属性

属性名称:stars,属性类型:number,属性作用:设置评分总数。默认值:5

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

说明:设置为小于0的值时,按默认值显示。

属性名称:stepSize,属性类型:number,属性作用:操作评级的步长。

默认值:0.5

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

说明:

设置为小于0的值时,按默认值显示。

取值范围为[0.1, stars]。

属性名称:starStyle

属性类型:

{
backgroundUri: string,
foregroundUri: string,
secondaryUri?: string
}


backgroundUri:未选中的星级的图片链接,可由用户自定义或使用系统默认图片。

foregroundUri:选中的星级的图片路径,可由用户自定义或使用系统默认图片。

secondaryUri:部分选中的星级的图片路径,可由用户自定义或使用系统默认图片。

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

说明:

startStyle属性所支持的图片类型能力参考Image组件。

支持加载本地图片和网络图片,暂不支持PixelMap类型和Resource资源。

默认图片加载方式为异步,暂不支持同步加载。

设置值为undefined或者空字符串时,rating会选择加载系统默认星型图源。


说明:

rating宽高为[width, height]时,单个图片的绘制区域为[width / stars, height]。

为了指定绘制区域为方形,建议自定义宽高时采取[height * stars, height], width = height * stars的方式。


1.3 事件

onChange(callback:(value: number) => void)


操作评分条的评星发生改变时触发该回调。其参数为选中的评分number

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


1.4 示例代码

示例代码1

// xxx.ets
@Entry
@Component
struct RatingExample {
  @State rating: number = 3.5
  build() {
    Column() {
      Column() {
        Rating({ rating: this.rating, indicator: false })
          .stars(5)
          .stepSize(0.5)
          .margin({ top: 24 })
          .onChange((value: number) => {
            this.rating = value
          })
        Text('current score is ' + this.rating)
          .fontSize(16)
          .fontColor('rgba(24,36,49,0.60)')
          .margin({ top: 16 })
      }.width(360).height(113).backgroundColor('#FFFFFF').margin({ top: 68 })
      Row() {
        Image('common/testImage.jpg')
          .width(40)
          .height(40)
          .borderRadius(20)
          .margin({ left: 24 })
        Column() {
          Text('Yue')
            .fontSize(16)
            .fontColor('#182431')
            .fontWeight(500)
          Row() {
            Rating({ rating: 3.5, indicator: false }).margin({ top: 1, right: 8 })
            Text('2021/06/02')
              .fontSize(10)
              .fontColor('#182431')
          }
        }.margin({ left: 12 }).alignItems(HorizontalAlign.Start)
        Text('1st Floor')
          .fontSize(10)
          .fontColor('#182431')
          .position({ x: 295, y: 8 })
      }.width(360).height(56).backgroundColor('#FFFFFF').margin({ top: 64 })
    }.width('100%').height('100%').backgroundColor('#F1F3F5')
  }
}


9ec131f61ec04113a745245065fe7f03.png

示例代码2

// xxx.ets
@Entry
@Component
struct RatingExample {
  @State rating: number = 3.5
  build() {
    Column() {
      Rating({ rating: this.rating, indicator: false })
        .stars(5)
        .stepSize(0.5)
        .starStyle({
          backgroundUri: '/common/imag1.png', // common目录与pages同级
          foregroundUri: '/common/imag2.png',
          secondaryUri: '/common/imag3.png'
        })
        .margin({ top: 24 })
        .onChange((value: number) => {
          this.rating = value
        })
      Text('current score is ' + this.rating)
        .fontSize(16)
        .fontColor('rgba(24,36,49,0.60)')
        .margin({ top: 16 })
    }.width('100%').height('100%').backgroundColor('#F1F3F5')
  }
}



二、RichText富文本显示


富文本组件,解析并显示HTML格式文本。

说明

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


2.1 子组件

不包含子组件。


2.2 接口

RichText(content:string)



参数

参数名:content,参数类型string

是否必填:是

功能描述:表示HTML格式的字符串。


2.3 事件

1、加载网页时触发。

onStart(callback: () => void)


2、网页加载结束时触发。

onComplete(callback: () => void)


2.4 属性

只支持通用属性中width,height,size,layoutWeight四个属性。由于padding,margin,constraintSize属性使用时与通用属性描述不符,暂不支持。


2.5 富文本所支持的标签

1、<h1>–<h6>

被用来定义HTML,<h1>定义重要等级最高的标题,<h6>定义重要等级最低的标题。

<h1>这是一个标题


这是h2标题

2、<p></p>

定义段落。

这是一个段落

3、

插入一个简单的换行符。

这是一个段落

这是换行段落

4、<font/>

规定文本的字体、字体尺寸、字体颜色。

<font size=“3” face=“arial” color=“red”>这是一段红色字体。</font>

5、<hr/>

定义HTML页面中的主题变化(比如话题的转移),并显示为一条水平线。

<p>这个一个段落</p><hr/><p>这是一个段落</p>

6、<image></image>

用来定义图片。

<image src=“file:///data/storage/el1/bundle/entry/resources/rawfile/icon.png”></image>

7、<div></div>

常用于组合块级元素,以便通过CSS来对这些元素进行格式化。

<div style=‘color:#0000FF’><h3>这是一个在div元素中的标题。</h3></div>

8、<i></i>

定义与文本中其余部分不同的部分,并把这部分文本呈现为斜体文本。

<i>这是一个斜体</i>

9、<u></u>

定义与常规文本风格不同的文本,像拼写错误的单词或者汉语中的专有名词,应尽量避免使用<u>为文本加下划线,用户会把它混淆为一个超链接。

<p><u>这是带有下划线的段落</u></p>

10、<style></style>

定义HTML文档的样式信息。

<style>h1{color:red;}p{color:blue;}</style>

style

属性规定元素的行内样式,写在标签内部,在使用的时候需用引号来进行区分,并以; 间隔样式,style=‘width: 500px;height: 500px;border: 1px soild;margin: 0 auto;’。

<h1 style=‘color:blue;text-align:center’>这是一个标题</h1><p style=‘color:green’>这是一个段落。</p>

11、<script></script>

用于定义客户端脚本,比如JavaScript。


2.6 示例代码

示例效果请以真机运行为准,当前IDE预览器不支持。

// xxx.ets
@Entry
@Component
struct RichTextExample {
  @State data: string = '<h1 style="text-align: center;">h1标题</h1>' +
  '<h1 style="text-align: center;"><i>h1斜体</i></h1>' +
  '<h1 style="text-align: center;"><u>h1下划线</u></h1>' +
  '<h2 style="text-align: center;">h2标题</h2>' +
  '<h3 style="text-align: center;">h3标题</h3>' +
  '<p style="text-align: center;">p常规</p><hr/>' +
  '<div style="width: 500px;height: 500px;border: 1px solid;margin: 0auto;">' +
  '<p style="font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)">字体大小35px,行高45px</p>' +
  '<p style="background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;">' +
  '<p>这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字</p>';
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center,
      justifyContent: FlexAlign.Center }) {
      RichText(this.data)
        .onStart(() => {
          console.info('RichText onStart');
        })
        .onComplete(() => {
          console.info('RichText onComplete');
        })
        .width(500)
        .height(400)
        .backgroundColor(0XBDDB69)
      RichText('layoutWeight(1)')
        .onStart(() => {
          console.info('RichText onStart');
        })
        .onComplete(() => {
          console.info('RichText onComplete');
        })
        .size({ width: '100%', height: 110 })
        .backgroundColor(0X92D6CC)
        .layoutWeight(1)
      RichText('layoutWeight(2)')
        .onStart(() => {
          console.info('RichText onStart');
        })
        .onComplete(() => {
          console.info('RichText onComplete');
        })
        .size({ width: '100%', height: 110 })
        .backgroundColor(0X92C48D)
        .layoutWeight(2)
    }
  }
}


4774193d6508408e8304ceb4ec4e3208.png


总结


提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

目录
打赏
0
0
0
0
61
分享
相关文章
鸿蒙开发:什么是ArkTs?
本小结主要简单介绍了ArkTs语言的相关知识,都是一些概念性质的内容,大家作为一个了解即可
107 61
鸿蒙开发:ArkTs语言注释
关于注释,有一点需要注意,那就是,注释,不会被编译器或解释器执行,而本小节的重点并不是简单的教大家注释如何去写,而是在实际的项目中,我们能够真正的把注释投入到实际的开发中。
59 18
鸿蒙开发:ArkTs语言注释
鸿蒙开发:ArkTs数据类型
最后一点是,ArkTS不支持any和unknown类型,需要显式指定具体类型,否则会报异常,具体原因是,这是ArkTS的特性之一,那就是使用静态类型;如果程序采用静态类型,即所有类型在编译时都是已知的,那么开发者就能够容易理解代码中使用了哪些数据结构。同时,由于所有类型在程序实际运行前都是已知的,编译器可以提前验证代码的正确性,从而可以减少运行时的类型检查,有助于提升性能。
鸿蒙开发:ArkTs数据类型
|
16天前
|
HarmonyOS NEXT鸿蒙实现自定义组件插槽
在HarmonyOS NEXT中,通过`@BuilderParam`装饰器实现类似Vue-Slot或React-RenderProps的功能,允许将UI结构的函数作为参数传递给组件并在指定位置渲染。具体步骤如下:
33 5
HarmonyOS NEXT鸿蒙实现自定义组件插槽
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
74 19
HarmonyOS:ArkTS 显式动画 animateTo 自学指南
本文深入解析了 ArkTS 中的 `animateTo` 全局显式动画接口,帮助开发者掌握其使用方法。文章从接口概述、参数详解到使用注意事项,结合实际示例代码,全面展示了如何通过配置 `AnimateParam` 对象实现流畅的动画效果。内容涵盖属性动画、布局变化及组件转场等场景,并强调不同版本的支持特性。适合初学者系统学习,也供进阶开发者参考优化动画体验。希望本文能助你快速上手 `animateTo`!
22 7
鸿蒙相机开发实战:从设备适配到性能调优 —— 我的 ArkTS 录像功能落地手记(API 15)
本文分享鸿蒙相机开发经验,从环境准备到核心逻辑实现,涵盖权限声明、模块导入、Surface关联与分辨率匹配,再到录制控制及设备适配法则。通过实战案例解析,如旋转补偿、动态帧率调节和编解码优化,帮助开发者掌握功能实现、设备适配与体验设计三大要点,减少开发坑点。适合鸿蒙新手及希望深化硬件交互能力的工程师参考收藏。
40 2
鸿蒙开发:ArkTs语言变量和常量
变量是一种用于存储数据的容器,并且其存储的数据值可以在程序执行过程中被改变,变量通常有一个名字(标识符),用于在程序中引用它。
HarmonyOS NEXT 实战系列01-ArkTS基础
ArkTS是HarmonyOS应用开发的首选语言,基于TypeScript扩展而成,保留了TS风格并强化静态检查与分析能力,提升程序稳定性和性能。它支持声明式UI开发、状态管理等功能,简化应用构建。语法涵盖变量、常量、数组、对象、语句(如if、switch)、函数(含箭头函数与泛型)、类和模块等特性,同时提供联合类型、字面量联合类型及枚举类型等丰富类型支持,助力开发者高效编写高质量代码。
用arkts写鸿蒙app:简单的海报生成
本文介绍了基于鸿蒙系统开发的一款个人字典与创作辅助应用,重点实现海报生成功能。通过Canvas画布组件完成图片绘制、文字填充等操作,并利用鸿蒙的沙盒机制和权限管理将生成的海报保存至本地。文中详细展示了代码实现步骤,包括渲染逻辑、数据导出及文件存储过程,同时提供了相关API文档链接以便参考。此项目不仅满足了作者个人兴趣需求,还体现了鸿蒙系统的独特特性和开发潜力。
77 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等