当前位置: 首页 > article >正文

鸿蒙进阶篇-Swiper组件的使用

“在科技的浪潮中,鸿蒙操作系统宛如一颗璀璨的新星,引领着创新的方向。作为鸿蒙开天组,今天我们将一同踏上鸿蒙基础的探索之旅,为您揭开这一神奇系统的神秘面纱。”

各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今天的学习,

鸿蒙进阶篇-Swiper组件的使用
————————————————

1.使用场景

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

2.基本用法

首先来看看如何设置轮播内容,以及设置尺寸

  1. 轮播内容:内容作为Swiper的子组件即可
  2. 尺寸:1)设置 Swiper 的尺寸:内容会拉伸为和 Swiper 一致(优先级高)2)设置内容尺寸:会将Swiper撑开
@Entry
@Component
struct Index {
  // Swiper 基本使用
  build() {
    Column() {
      Text('Swiper基本使用')
        .fontSize(20)
        .fontWeight(900)
        .padding(10)
      Swiper() {
        Text('0')
          .width('90%')
          .height('100%')
          .backgroundColor(Color.Gray)
          .textAlign(TextAlign.Center)
          .fontSize(30)

        Text('1')
          .width('90%')
          .height('100%')
          .backgroundColor(Color.Green)
          .textAlign(TextAlign.Center)
          .fontSize(30)

        Text('2')
          .width('90%')
          .height('100%')
          .backgroundColor(Color.Pink)
          .textAlign(TextAlign.Center)
          .fontSize(30)
      }
      .loop(true)
    }
    .width('100%')
    .height('100%')
  }
}

3.常用属性

设置了内容以及尺寸之后已经可以实现基础的轮播效果啦,接下来看看一些常见属性:

autoPlay

boolean

子组件是否自动播放。

默认值:false

说明:

loop为false时,自动轮播到最后一页时停止轮播。手势切换后不是最后一页时继续播放。

interval

number

使用自动播放时播放的时间间隔,单位为毫秒。

默认值:3000

vertical

boolean

是否为纵向滑动。

默认值:false

loop

boolean

是否开启无限循环播放。

设置为true时表示无限循环播放,设置为false时表示只播放一次。

默认值:true

利用上面几个属性,只要加上B站的图片,就大致上能实现B站首页的轮播图效果了,B站就是无限循环播放的,当然,还有一些细节需要进一步调整实现,比如导航点:

4.设置导航点

Swiper提供了默认的导航点样式和导航点箭头样式,导航点默认显示在Swiper下方居中位置,开发者也可以通过indicator属性自定义导航点的位置和样式,导航点箭头默认不显示。

通过indicator属性,开发者可以设置导航点相对于Swiper组件上下左右四个方位的位置,同时也可以设置每个导航点的尺寸、颜色、蒙层和被选中导航点的颜色。

indicator

DotIndicator

| DigitIndicator

| boolean

设置可选导航点指示器样式。

- DotIndicator:圆点指示器样式。

- DigitIndicator:数字指示器样式。

- boolean:是否启用导航点指示器。

默认值:true

默认类型:DotIndicator

日常开发中 较为常见的是圆点指示器,咱们重点掌握如何调整他即可:

4.1位置属性:

参数名

参数类型

必填项

参数描述

left

Length

设置导航点距离Swiper组件左边的距离。

默认值:0

单位:vp

top

Length

设置导航点距离Swiper组件顶部的距离。

默认值:0

单位:vp

right

Length

设置导航点距离Swiper组件右边的距离。

默认值:0

单位:vp

bottom

Length

设置导航点距离Swiper组件底部的距离。

默认值:0

单位:vp

4.2样式属性:

参数名

参数类型

必填项

参数描述

itemWidth

Length

设置Swiper组件圆点导航指示器的宽,不支持设置百分比。

默认值:6

单位:vp

itemHeight

Length

设置Swiper组件圆点导航指示器的高,不支持设置百分比。

默认值:6

单位:vp

selectedItemWidth

Length

设置选中Swiper组件圆点导航指示器的宽,不支持设置百分比。

默认值:12

单位:vp

selectedItemHeight

Length

设置选中Swiper组件圆点导航指示器的高,不支持设置百分比。

默认值:6

单位:vp

color

ResourceColor

设置Swiper组件圆点导航指示器的颜色。

默认值:'#182431'(10%透明度)

selectedColor

ResourceColor

设置选中Swiper组件圆点导航指示器的颜色。

默认值:'#007DFF'

最后就是根据这些属性,咱们来实现华为商城首页的效果:

代码如下:

@Entry
@Component
struct Index {
  build() {
    Column() {
      Text('Swiper案例-华为商城')
        .fontSize(20)
        .fontWeight(900)
        .padding(10)
      Swiper() {
        Image('https://res.vmallres.com/uomcdn/CN/cms/202410/00cf6b02aacd4397968749ff39ae61db.jpg')
        Image('https://res.vmallres.com/uomcdn/CN/cms/202410/e9dc382b676348c593093e1f75053d45.jpg')
        Image('https://res.vmallres.com/uomcdn/CN/cms/202410/ff6a269fadff421da538ee5ee65c45ac.jpg')
        Image('https://res.vmallres.com/uomcdn/CN/cms/202410/3aba7d4d6ce14d45828e6a2dea221573.jpg')
      }
      .width('100%')
      .height(160)
      .indicator(
        Indicator.dot()// 圆形导航点
          .selectedColor(Color.Black)// 选中颜色
          .selectedItemWidth(10)// 选中宽度
          .selectedItemHeight(5)// 选中高度
          .itemWidth(5)// 默认宽度
          .itemHeight(5) // 默认高度
      )
    }
    .width('100%')
    .height('100%')
  }
}

以上是关于鸿蒙进阶篇-Swiper组件的使用的一些内容,方便大家学习,至此,关于鸿蒙进阶篇-Swiper组件的使用的内容就介绍到这里,愿您能学以致用,开发出精彩的鸿蒙应用!

以上内容仅供学习交流,如有违法或者侵权可以联系删除。


http://www.kler.cn/a/379201.html

相关文章:

  • PHP JSON 教程
  • python 获取鼠标点击的实时位置案例
  • SpringKafka生产者、消费者消息拦截
  • solidity selfdestruct合约销毁
  • 操作系统进程的描述与控制习题
  • 双因子认证(Two-factor authentication)简介
  • docker镜像仓库实战
  • 2024年最新TikTok养号攻略来了!再也不用为流量头疼了!
  • 著名的 Tangible Software Solutions 代码转换软件推荐的 VB6 代码转换器 gmStudio
  • 【操作系统】基于环形队列的生产消费模型
  • 【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现
  • 嵌入式操作系统FreeRTOS
  • 柯桥日语培训|N1常考语法:~(よ)うが/(よ)うと——“无论……都……”
  • @Controller 和 @RestController 区别
  • 3.1 快速启动Flink集群
  • 速卖通商品详情API接口,json数据参考(案例)
  • npm入门教程3:npm安装
  • qt QTextEdit详解
  • 005-Kotlin界面开发之程序猿初试Composable
  • LongVU :Meta AI 的解锁长视频理解模型,利用自适应时空压缩技术彻底改变视频理解方式
  • vrrp和mstp,vrrp和byd
  • 无人机避障——使用三维PCD点云生成的2D栅格地图PGM做路径规划
  • LlamaIndex框架学习-提示词的几种使用模式
  • JVM1.8内存模型
  • 力扣每日一题 3165. 不包含相邻元素的子序列的最大和
  • MySQL存储引擎——针对实习面试