HarmonyOS NEXT练习:Swiper轮播图

Swiper组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。

布局与约束
Swiper作为一个容器组件,如果设置了自身尺寸属性,则在轮播显示过程中均以该尺寸生效。如果自身尺寸属性未被设置,则分两种情况:如果设置了prevMargin或者nextMargin属性,则Swiper自身尺寸会跟随其父组件;如果未设置prevMargin或者nextMargin属性,则会自动根据子组件的大小设置自身的尺寸。

循环播放
通过loop属性控制是否循环播放,该属性默认值为true。
当loop为true时,在显示第一页或最后一页时,可以继续往前切换到前一页或者往后切换到后一页。如果loop为false,则在第一页或最后一页时,无法继续向前或者向后切换页面。

自动轮播
Swiper通过设置autoPlay属性,控制是否自动轮播子组件。该属性默认值为false。autoPlay为true时,会自动切换播放子组件,子组件与子组件之间的播放间隔通过interval属性设置。interval属性默认值为3000,单位毫秒。

导航点样式
Swiper提供了默认的导航点样式和导航点箭头样式,导航点默认显示在Swiper下方居中位置,开发者也可以通过indicator属性自定义导航点的位置和样式,导航点箭头默认不显示。通过indicator属性,开发者可以设置导航点相对于Swiper组件上下左右四个方位的位置,同时也可以设置每个导航点的尺寸、颜色、蒙层和被选中导航点的颜色。

练习Demo:SwiperPage

@Entry
@Component
struct SwiperPage {list: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9]build() {Column({ space: 10 }) {Text('Swiper轮播图练习')Swiper() {ForEach(this.list, (item: number) => {Column() {Text(item.toString()).width('90%').height(160).textAlign(TextAlign.Center).fontSize(30)}.width('100%').height('100%').backgroundColor((item + 2) % 2 == 0 ? 0xAFEEEE : '#ffdaffcf')})}.width('100%').aspectRatio(2).cachedCount(2).index(0).autoPlay(true).interval(4000).loop(true).indicatorInteractive(true).itemSpace(0).indicator( // 设置圆点导航点样式new DotIndicator().itemWidth(15).itemHeight(15).selectedItemWidth(15).selectedItemHeight(15).color(Color.Gray).selectedColor(Color.Blue)).displayArrow({// 设置导航点箭头样式showBackground: true,isSidebarMiddle: true,backgroundSize: 24,backgroundColor: Color.White,arrowSize: 18,arrowColor: Color.Blue}, false).curve(Curve.Linear).onChange((index: number) => {console.info(index.toString())}).onGestureSwipe((index: number, extraInfo: SwiperAnimationEvent) => {console.info("index: " + index)console.info("current offset: " + extraInfo.currentOffset)}).onAnimationStart((index: number, targetIndex: number, extraInfo: SwiperAnimationEvent) => {console.info("index: " + index)console.info("targetIndex: " + targetIndex)console.info("current offset: " + extraInfo.currentOffset)console.info("target offset: " + extraInfo.targetOffset)console.info("velocity: " + extraInfo.velocity)}).onAnimationEnd((index: number, extraInfo: SwiperAnimationEvent) => {console.info("index: " + index)console.info("current offset: " + extraInfo.currentOffset)})}.width('100%')}
}

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

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

相关文章

算法备案能加急办理吗?

首先明确一点,算法备案官方审核部门是没有所谓的渠道提供快速审核服务的,所有申请者都是一视同仁。其次,我们确实有办法提高审核效率,加快算法备案进度。大家要注意识别所谓的加速办理是哪种情况以下是一些算法备案审核周期的重要信息,供大家参考:一、算法备案官方周期 1…

Windows11+OBS+视频号+麦克风设置直播操作流程

OBS+视频号直播操作流程 一、前期准备 1、可用于直播的电脑,我的是Win11系统 2、硬件设备(相机、采集卡、麦克风等) 3、软件(微信、OBS) 4、虚拟声卡 注:这个教程主要说一下声卡的配置,所以相机和采集卡之类的没有讲到 二、软件安装 微信和OBS这个都不会安装就别折腾了,所…

2025年天梯赛补题记录——整数的持续性

为什么没写出来:哈哈,看到400ms就不想写了,被前面一个题目卡了两次时间心态崩了,头脑发昏以为直接算过去会超时(能说那个时候快困死了脑袋很不灵光吗,给自己的无能找借口嘻嘻) 优化思路: 1.记忆化缓存:一想便知道每个数的分解都算一次很费时间,可以联想到记忆化缓存—…

《上古卷轴3:晨风》——存档技能数据修改

《上古卷轴3:晨风》由于其mod广泛开发,使得游戏的生命力非常强大,至今仍受广大RPG迷的喜爱!但晨风的技能数据如果用CE去修改,则是无用的。这里提供了技能数据的存档顺序,因此可以利用hex editor类的软件直接修改存档CE修改失效 《上古卷轴3:晨风》由于其mod广泛开发,使…

记录一次Armbian安装宝塔面板遇到ModuleNotFoundError: No module named _sqlite3的问题

如果在用Armbian安装宝塔面板的时候遇到ModuleNotFoundError: No module named _sqlite3报错,并且无法进入web面板界面,可以尝试以下操作。报错界面展示:步骤1:更换或添加Ubuntu软件源地址到/etc/apt/source.list.d文件夹的文件中 例如:将下面的地址添加到/etc/apt/source…

Cesium中glb模型颜色暗淡解决

问题: 3dmax导出fbx,此fbx文件导入blender中,再由blender导出成glb模型,该glb模型放入cesium中贴图颜色颜色暗沉无光,试了各种办法(泛光、时差、多光源、唯一光)效果均不明显。 原因: 发现,转格式过程中不知道哪一环出错,会导致模型材质一个叫metallicFactor的属性格…

工业相机与采集卡配套方案:构建高性能机器视觉系统的核心要素

机器视觉技术作为人工智能和智能制造的关键组成部分,正日益广泛地应用于工业自动化、质量检测、机器人引导等领域。而一套高性能的机器视觉系统,离不开工业相机和采集卡的完美配合。工业相机负责图像的采集,采集卡则负责将相机采集到的图像数据传输到计算机进行分析和处理。…

在Linux环境下搭建Dify

在Linux环境下搭建Dify Dify的概述 Dify是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和LLMOps的理念,使开发者可以快速搭建生成级的生成式AI应用。即使你是非技术人员,也能参与到AI应用的定义和数据运营过程中。由于Dify内置了构建LLM应…

Linux密钥认证及Windows使用密钥连接Linux

概述 Linux中我们要连接主机,输入用户名密码然后连接,我们发现每次连接都要输入密码,对于一些批量操作不方便 我们需要一种新的认证方式,每次连接不需要输入密码,这个方法就叫密钥认证 密钥认证原理原理详解:使用ssh-keygen命令生成私钥和公钥。 使用ssh-copy-id命令将公…

3.31 等价关系与划分

1 等价关系与划分 1.1 等价关系 若R是自反的,对称的和传递的,则称R为A上的等价关系(和恒等关系、全域关系不同) *关系内部的元素是等价的 *R^2={(a,b)}即第一分量到第二分量有一个长度为2的路径 所以R^2(长度为2的路径)∈R(长度为1的路径),即可判断R具有传递性 1.2 等…