【ArkTS】一文带你了解HarmonyOS 鸿蒙Next Swiper组件的方方面面

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

【ArkTS】一文带你了解HarmonyOS 鸿蒙Next Swiper组件的方方面面 【关键字】
ArkTS、Swiper组件、SwiperController、轮播图

【Swiper是什么】
Swiper是一个容器类组件,它提供了切换页面显示的能力,Swiper内部包含的每一个子组件都表示一个页面,简单来说就是如果Swiper中包含了3个子组件,那么Swiper中就有3个页面。

下面来介绍一些Swiper组件的常用属性:

  • index:默认显示显示第几页,默认值为 0。
  • autoPlay:是否自动播放,默认值为 false
  • interval:设置自动播放时,播放的时间间隔,单位毫秒,默认是 3000。
  • indicator:是否显示导航点指示器,默认显示。
  • loop:是否开启循环显示,也就是说当翻页到最后一页再往下翻页是否会回到第一页,默认开启。

然后再来说一下SwiperController,SwiperController是Swiper的页面控制器,Swiper组件可以绑定一个SwiperController,通过它来实现控制翻页,并且提供了两个方法:

  • showNext:显示下一页。
  • showPrevious:显示上一页。

关于Swiper组件的更多介绍及API的使用,欢迎参考官方文档:
https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-container-swiper-0000001333321221

【Swiper实战】
接下来我们就通过代码来快速实现一个自动轮播图,我们先通过Swiper来实现,直接调用系统提供的API简单快捷。

首先,我们需要准备3张图片,然后把它们复制到entry/src/main/resources/base/media这个目录下,如下图所示:

然后我们使用如下的方式来访问图片资源:$r

关于资源文件的访问,大家可以参考官方文档中的说明:
资源分类与访问—应用资源篇

然后我们在index.ets文件中来编写代码,如下代码所示:

代码很简单,就是使用Swiper组件内部包裹了3个Image组件,然后调用了显示页面指示器indicator()和自动轮播autoPlay()这两个api。

【SwiperController实战】
接下来我们换一种方式,通过SwiperController这个控制器并且不使用autoPlay()自动轮播函数,借助于定时器来实现轮播图的效果。

首先,我们需要定义一个SwiperController类型的变量:

然后在Swiper的构造函数中绑定上面定义的controller对象:

从上面的代码中可以看到这里我们没有调用autoPlay(true)函数。

然后再定义一个函数,通过定时器setInterval()在函数内部借助swiper.showNext()来实现翻页效果,然后我们设置定时器每隔3000毫秒执行一次:

在aboutToAppear()函数中调用上面的启动轮播的函数:

在aboutToDisappear()函数中关闭定时器:

下面来看一下我们实现的效果,如下图所示:

【轮播图响应事件】
最后再来说一下Swiper组件的事件,事件描述如下:

onChange:页面切换时会回调当前方法,显示当前第几页。
有时候我们会遇到这样的需求:点击不同的轮播图需要跳转到不同的页面,此时,我们就可以先借助onChange()函数来获取到当前页面的索引:

然后再在onClick()函数中根据页面索引跳转到不同的页面:

附:完整代码如下:

最后实现的效果如下:

OK,相信通过上面的代码说明,大家都已经能够很熟练的掌握Swiper组件的用法啦,今天的内容就到这里了,下期再会!


更多关于【ArkTS】一文带你了解HarmonyOS 鸿蒙Next Swiper组件的方方面面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

手动滑动有动画,自动播放也有动画,但是修改index值就没有动画,这是咋回事?

更多关于【ArkTS】一文带你了解HarmonyOS 鸿蒙Next Swiper组件的方方面面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


请问如何基于swiper实现向前无限滚动呢

试试,在startPlay()方法中将swiper.showNext()修改为swiper.showPrevious()

【ArkTS】HarmonyOS 鸿蒙Next Swiper组件介绍

HarmonyOS中的Next Swiper组件是一个用于实现滑动切换效果的UI组件。它基于ArkTS(Ark TypeScript)框架开发,为开发者提供了便捷的方式来创建具有流畅滑动效果的界面。

Next Swiper组件支持多种滑动模式,包括水平滑动和垂直滑动,开发者可以根据需求选择合适的模式。同时,它还支持自定义滑动动画,以及设置滑动过程中的回调事件,以满足不同的交互需求。

在使用Next Swiper组件时,开发者需要将其添加到页面中,并通过属性配置来设置滑动项、滑动方向、动画效果等。此外,还可以通过事件监听来处理滑动过程中的各种事件,如滑动开始、滑动进行中、滑动结束等。

值得注意的是,Next Swiper组件是HarmonyOS系统中的一部分,因此它依赖于HarmonyOS的运行环境。开发者在使用该组件时,需要确保自己的项目已经正确配置了HarmonyOS的开发环境。

如果开发者在使用Next Swiper组件时遇到问题,可以查阅HarmonyOS的官方文档,或者参考相关的开发者社区和论坛来获取帮助。如果问题依旧没法解决请联系官网客服,官网地址是:

https://www.itying.com/category-93-b0.html
回到顶部