HarmonyOS API 15 新晋导航点组件Indicator详解

简介: 本节介绍HarmonyOS API 15新增的导航点组件Indicator的特性和用法,支持圆点和数字两种导航样式。示例基于DevEco Studio 5.0.5,展示如何不依赖Swiper组件独立显示导航点。通过IndicatorComponentController控制翻页,设置初始索引、样式、循环、总数及方向等属性,并处理索引变化事件。代码示例详细解析各属性与事件的功能,适用于API Version 15及以上版本,支持ArkTS卡片和元服务使用。源码托管于《跟老卫学HarmonyOS开发》GitHub仓库。

 本节演示HarmonyOS API 15新晋导航点组件Indicator的特性及用法。

所使用的环境为:DevEco Studio 5.0.5 Release

导航点组件Indicator概述

导航点组件Indicator,提供圆点导航点以及数字导航点两种导航点样式。

该组件从API Version 15开始支持,将原Swiper组件中的Indicator已有的能力作为一个单独组件提供给开发者使用。开发者可以不依赖Swiper组件单独显示导航点,也可以通过IndicatorComponentController与Swiper组件绑定使用。

当多个导航点组件和同一个Swiper绑定时,只有最后一个导航点组件能成功和Swiper绑定。

当一个导航点组件和多个Swiper绑定时,只有最后一个Swiper能成功和导航点组件绑定。

创建一个不依赖Swiper组件单独显示导航点的示例

创建一个名为“ArkTSIndicator”的项目,用于演示不依赖Swiper组件单独显示导航点。

修改Index.ets,内容如下:

@Entry

@Component

struct Index {

 @State indicatorIndex: number = 0;


 // Indicator组件的控制器,可以将此对象绑定至Indicator组件来控制翻页。

 private indicatorController: IndicatorComponentController = new IndicatorComponentController();


 build() {

   Column() {

     Text(this.indicatorIndex + '')

       .fontSize($r('app.float.page_text_font_size'))

       .fontWeight(FontWeight.Bold)


     IndicatorComponent(this.indicatorController)

       .initialIndex(0) // 设置首次显示时当前导航点的索引值。

       .style( // 可选导航点指示器样式。

         new DotIndicator()

           .itemWidth(25)

           .itemHeight(25)

           .selectedItemWidth(25)

           .selectedItemHeight(25)

           .color(Color.Gray)

           .selectedColor(Color.Blue))

       .loop(true) // 设置是否开启循环

       .count(6) // 设置导航点总数量

       .vertical(false) // 设置是否为纵向滑动

       // 当前显示的选中导航点索引变化时触发该事件,可通过回调函数获取当前选中导航点的索引值。

       .onChange((index: number) => {

         console.log("current index: " + index );


         // 索引赋值给变量indicatorIndex

         this.indicatorIndex = index;

       })

   }

   .height('100%')

   .width('100%')

 }

}


运行效果如下

视频演示效果,可见B站:https://www.bilibili.com/video/BV1AE76z5Ei8/

代码解读

在上述示例中,IndicatorComponentController是Indicator组件的控制器,可以将此对象绑定至Indicator组件来控制翻页。

接口IndicatorComponent(controller?: IndicatorComponentController)是单独导航点组件的构造函数,可配置该组件的控制器。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API Version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的属性initialIndex(index: number)是用于设置首次显示时当前导航点的索引值。设置小于0或大于等于导航点数量时,按照默认值0处理。单独导航点组件和Swiper绑定的时候,该属性不生效。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的属性style(indicatorStyle: DotIndicator | DigitIndicator)是用于设置可选导航点指示器样式。可选导航点指示器样式可以是 DotIndicator或者DigitIndicator,其中 DotIndicator是圆点指示器样式;DigitIndicator是数字指示器样式。默认类型是DotIndicator。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的属性loop(isLoop: boolean)是用于设置是否开启循环。单独导航点组件和Swiper绑定的时候,该属性不生效。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的属性count(totalCount: number)是用于设置导航点总数量。单独导航点组件和Swiper绑定的时候,以Swiper的页面数量为准。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的属性vertical(isVertical: boolean)是用于设置是否为纵向滑动。单独导航点组件和Swiper绑定的时候,该属性不生效。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

IndicatorComponent的事件onChange(event: Callback<number>)是用于当前显示的选中导航点索引变化时触发该事件,可通过回调函数获取当前选中导航点的索引值。描述如下:

  • 卡片能力: 从API version 15开始,该接口支持在ArkTS卡片中使用。
  • 元服务API: 从API version 15开始,该接口支持在元服务中使用。
  • 系统能力: SystemCapability.ArkUI.ArkUI.Full

当前显示的选中导航点索,会将当前选中导航点的索引值复制给变量indicatorIndex,从而在上方的Text组件中展示出来。

源码

本示例源码归档至《跟老卫学HarmonyOS开发》:https://github.com/waylau/harmonyos-tutorial

目录
相关文章
|
4月前
|
开发者 容器
鸿蒙HarmonyOS - SideBarContainer 组件自学指南
`SideBarContainer` 是 HarmonyOS 提供的双区域容器组件,适用于「左侧导航 + 右侧内容」布局,如后台管理界面、文件管理器等。它支持三种布局类型:Embed(并排)、Overlay(悬浮)和 Auto(自动切换),并提供折叠、拖拽、控制按钮等功能。本文通过示例代码详解其用法,包括子组件限制、显示模式控制、尺寸参数设置、控制按钮与分割线样式定制,以及常见问题解答。掌握该组件可高效构建复杂页面结构,推荐从 Embed 模式入手逐步进阶。
104 9
鸿蒙HarmonyOS - SideBarContainer 组件自学指南
|
3月前
|
容器
45.[HarmonyOS NEXT RelativeContainer案例二] 精确控制组件间距:外边距在相对布局中的高级应用
在HarmonyOS NEXT的UI开发中,组件之间的间距控制对于创建美观、易用的界面至关重要。RelativeContainer不仅提供了强大的锚点定位系统,还可以结合外边距(margin)属性实现更精细的布局控制。本教程将详细讲解如何在RelativeContainer中巧妙运用外边距,帮助你掌握这一实用技巧。
108 29
|
3月前
|
开发者 容器
44.[HarmonyOS NEXT RelativeContainer案例一] 掌握组件锚点布局:打造灵活精准的UI定位系统
在HarmonyOS NEXT的UI开发中,精确控制组件位置是构建复杂界面的关键。RelativeContainer作为一种强大的布局容器,通过锚点系统提供了精确定位能力,使开发者能够创建出灵活且精准的UI布局。本教程将详细讲解如何使用RelativeContainer的锚点布局功能,帮助你掌握这一核心技术。
110 4
|
3月前
|
数据安全/隐私保护 UED 容器
17.[HarmonyOS NEXT Column案例一(下)] 表单组件的详细实现与样式定制
在上一篇教程中,我们介绍了Column组件的基本概念和参数设置。本篇将深入探讨登录表单中各个子组件的实现细节,包括Text、TextInput和Button组件的属性设置和样式定制,以及如何将这些组件组合成一个完整的登录表单界面。
85 4
|
3月前
|
存储 数据安全/隐私保护 容器
16.[HarmonyOS NEXT Column案例一(上)] 使用Column组件构建垂直表单布局的基础指南
在HarmonyOS NEXT应用开发中,布局是构建用户界面的基础。本教程将详细讲解如何使用Column组件创建垂直排列的表单布局,通过一个登录表单的实例,展示Column组件的基本用法、间距控制和对齐方式等核心知识点。
83 4
|
3月前
|
UED 容器
43.[HarmonyOS NEXT Row案例十一] 构建智能分页控件:Row组件实现页码与翻页按钮的完美结合
分页控件是数据展示类应用中不可或缺的导航元素,它允许用户在大量数据中进行有序浏览。本教程将详细讲解如何使用HarmonyOS NEXT的Row组件创建一个功能完善的分页控件,实现页码显示与前后翻页按钮的完美结合。 分页控件在各类应用场景中广泛应用,如电子商城的商品列表、新闻应用的文章列表、图库应用的图片浏览等。通过合理的设计和交互,可以提升用户的浏览体验和数据访问效率。
81 3
|
3月前
|
数据库 开发者 UED
37.[HarmonyOS NEXT Row案例五] 构建智能聊天气泡:Row组件的reverse属性妙用
在即时通讯应用中,聊天气泡是一个核心UI元素,它需要能够区分发送方和接收方的消息,并以不同的样式和位置显示。本教程将详细讲解如何使用HarmonyOS NEXT的Row组件创建反向排列的消息气泡,重点介绍reverse属性的巧妙应用,帮助开发者构建出专业、美观的聊天界面。
84 3
|
3月前
|
存储 数据处理 UED
19.[HarmonyOS NEXT Column案例二(下)] 时间线组件的详细实现与样式定制
在上一篇教程中,我们介绍了Column组件的reverse属性及其在时间线应用中的基本用法。本篇将深入探讨时间线中各个子组件的实现细节,包括ForEach循环渲染、Row布局、Text组件的样式设置,以及如何通过这些组件构建一个完整的时间线界面。
81 2
|
3月前
|
设计模式 缓存 容器
06.HarmonyOS Next UI进阶:Text组件与视觉样式完全指南
在HarmonyOS Next应用开发中,Text组件是最基础也是最常用的UI元素之一。它不仅用于显示文本内容,还可以通过丰富的样式属性实现各种视觉效果。掌握Text组件的样式设置,是构建精美UI界面的基础技能。
156 1
|
6月前
|
前端开发 API 开发者
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)
本文由黑臂麒麟(6年前端经验)撰写,介绍ArkTS开发中的常用基础组件与布局组件。基础组件包括Text、Image、Button等,支持样式设置如字体颜色、大小和加粗等,并可通过Resource资源引用统一管理样式。布局组件涵盖Column、Row、List、Grid和Tabs等,支持灵活的主轴与交叉轴对齐方式、分割线设置及滚动事件监听。同时,Tabs组件可实现自定义样式与页签切换功能。内容结合代码示例,适合初学者快速上手ArkTS开发。参考华为开发者联盟官网基础课程。
447 75
harmonyOS基础- 快速弄懂HarmonyOS ArkTs基础组件、布局容器(前端视角篇)

热门文章

最新文章