前言

在移动应用开发中,轮播图(Banner)是一个极其常见的UI组件,它能够在有限的空间内展示多张图片或内容,为用户提供丰富的视觉体验和高效的信息传递。在HarmonyOS鸿蒙应用开发中,ArkUI框架提供了强大的Swiper组件来简化轮播图的实现。

本文将基于一个实际的网络图片轮播图案例,深入探讨HarmonyOS中Swiper组件的各种特性和最佳实践,帮助开发者快速掌握轮播图的开发技巧。

一、Swiper组件简介

Swiper是HarmonyOS提供的一个滑动容器组件,可以用于实现轮播图、图片浏览器、引导页等多种场景。它支持水平滑动和垂直滑动,具备自动播放、循环播放等丰富功能。

主要特性:

  • 支持水平和垂直方向滑动
  • 支持自动播放和循环播放
  • 可自定义切换动画和时长
  • 提供页面指示器
  • 支持手势滑动切换

二、 官方文档指南

官方文档指南:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-layout-development-create-looping

三、基础轮播图实现

  1. 创建基础轮播图组件(基础用法)
@Entry
@Component
struct Index {

  //定义数据
  private bannerList:string[] =[
    "https://b0.bdstatic.com/9599712799a16fd4c61267374ea6b2cc.jpg",
    "https://5b0988e595225.cdn.sohucs.com/images/20190427/9e184cf4225142b1a58a44ddd1775840.jpeg",
    "https://www.guxilork.com/skin/picture/29095136.jpg",
    "https://picnew9.photophoto.cn/20150723/tianmaotaobaonvzhuanglunboguanggaohaibaocuxiaoguanggaowenzipaiban-25738149_1.jpg",
  ]

  build() {
    Column() {
      Swiper() {
        ForEach(this.bannerList, (item: string) => {
          Image(item)
            .width('100%')
            .height('100%')
            .objectFit(ImageFit.Cover)
            .borderRadius(10)
        })
      }
      .height('200')
      .loop(true)
      .margin(16)
      .autoPlay(true)
      .interval(2000)
    }
    .height('100%')
    .width('100%')
  }
}

注意事项,这里的图片是网络图片,所以别忘了在module.json5文件下添加网络权限

    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ],
  1. Swiper常用属性配置(进阶用法)
      // 基础属性
      .height(200)
      .loop(true)                    // 是否循环播放
      .autoPlay(true)                // 是否自动播放
      .interval(3000)                // 自动播放间隔(毫秒)
      .duration(500)                 // 切换动画时长(毫秒)
      .indicator(true)               // 是否显示指示器
      .vertical(false)               // 是否垂直方向

      // 指示器样式定制
      .indicator(
        Indicator.dot()
          .left(0)                  //指示器显示位置
          .itemWidth(15)            //指示器宽度
          .itemHeight(15)           //指示器高度
          .selectedItemWidth(30)    //选中指示器宽度
          .selectedItemHeight(15)   //选中指示器高度
          .color(Color.Red)         //指示器颜色
          .selectedColor(Color.Blue)//选中指示器颜色
      )

在这里插入图片描述

四、 总结

通过本文的详细讲解,我们深入探讨了HarmonyOS鸿蒙应用开发中Swiper轮播图的完整实现方案。从基础用法到高级功能。

HarmonyOS的ArkUI框架为轮播图开发提供了强大而灵活的工具,结合ArkTS的类型安全特性,可以帮助开发者构建出既美观又高性能的轮播图组件。希望本文能为您的HarmonyOS开发之旅提供有价值的参考。

五、关于作者其它项目视频教程介绍

本人在b站录制的一些视频教程项目,免费供大家学习

  1. Android新闻资讯app实战:https://www.bilibili.com/video/BV1CA1vYoEad/?vd_source=984bb03f768809c7d33f20179343d8c8
  2. Androidstudio开发购物商城实战:https://www.bilibili.com/video/BV1PjHfeXE8U/?vd_source=984bb03f768809c7d33f20179343d8c8
  3. Android开发备忘录记事本实战:https://www.bilibili.com/video/BV1FJ4m1u76G?vd_source=984bb03f768809c7d33f20179343d8c8&spm_id_from=333.788.videopod.sections
  4. Androidstudio底部导航栏实现:https://www.bilibili.com/video/BV1XB4y1d7et/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8
  5. Android使用TabLayout+ViewPager2实现左右滑动切换:https://www.bilibili.com/video/BV1Mz4y1c7eX/?spm_id_from=333.337.search-card.all.click&vd_source=984bb03f768809c7d33f20179343d8c8
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐