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

使用Swiper构建运营推荐位

完成了上一节内容的学习后,在您的应用界面上已经显示了一个基础的文本与图片,在本节内容中我们希望实现快速入门案例中的运营推荐位效果。

文章目录

    • 一、介绍
    • 二、Banner数据结构设计
    • 三、实现Banner运营位

在这里插入图片描述
在这里插入图片描述


一、介绍

根据本教程进行学习,您可以选择从上一教程结束时构建完成的项目开始,也可以直接运行02_StartingPoint文件夹中的项目。

在这里插入图片描述

02_StartingPoint文件夹:截止到本节内容之前不包括本节内容的所有代码

根据教程中的提示使用02_Resources文件夹中的文件。

在这里插入图片描述

02_Resources文件夹:本节内容中需要用到的图片、文本等资源文件

如果您想要自行探索,可以直接打开02_Complete文件夹中的项目并浏览代码。

在这里插入图片描述

02_Complete文件夹:根据本节内容逐步操作后,得到的包括之前章节内容及本节内容的代码包

项目文件下载
下载项目文件开始构建本项目,请根据以下步骤操作:

项目文件下载 02_UseSwiperToBuildBanner.zip

二、Banner数据结构设计

要实现Banner位,先让我们看看Banner位的数据结构设计。

1. 根据设计图可以看到快速入门Banner运营位由多张图片资源构成,于是我们可以在Index.ets文件中创建一个BannerClass类,用于表示每张图片资源的数据结构。


// entry/src/main/ets/pages/Index.ets

class BannerClass {
   

}

@Entry
@Component
struct Index {
   
  @State message: string = '快速入门';

  build() {
   
    Column() {
   
      Text(this.message)
        .fontSize(24)
        .fontWeight(700)
        .width('100%')
        .textAlign(TextAlign.Start)
        .padding({
    left: 16 })
        .fontFamily('HarmonyHeiTi-Bold')
        .lineHeight(33)
      Banner()
    }
    .height('100%')
    .width('100%')
    .backgroundColor('#F1F3F5')
  }
}

@Preview
@Component
struct Banner {
   
  build() {
   
    Image($r('app.media.banner_pic1'))
      .objectFit(ImageFit.Contain)
      .width('100%')
      .padding({
    top: 11, left: 16, right: 16 })
      .borderRadius(16)
  }
}

在这里插入图片描述

2. 我们为BannerClass添加id属性,用于唯一标识每一张图片资源,在之后的ForEach内容中我们会看到其作用。

// entry/src/main/ets/pages/Index.ets

class BannerClass {
   
  id: string = '';
}

// ...

3. 为BannerClass添加imageSrc属性,用于存储图片地址,此处定义为ResourceStr类型,其为Resource类型与string类型的联合类型。Resource类型在加载本地图片资源时会用到的,而string类型在加载网络图片资源时会用到。

  imageSrc: ResourceStr = '';

4. 为BannerClass添加url属性,用于存储Banner图片点击后跳转到的在线网页地址,在之后的跳转功能中会用到。

  url: string = '';

5. 为BannerClass添加构造函数,使用传入的id、imageSrc与url作为实例化对象的对应属性值。

 constructor(id: string, imageSrc: ResourceStr, url: string) {
   
    this.id = id;
    this.imageSrc = imageSrc;
    this.url = url;
  

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

相关文章:

  • MySQL 索引存储结构
  • Leetcode:219
  • Golang笔记——常用库context和runtime
  • < OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)
  • 2007-2020年各省国内专利申请授权量数据
  • 三天急速通关JavaWeb基础知识:Day 1 后端基础知识
  • 【蓝桥杯省赛真题02】C++猫吃鱼 第十届蓝桥杯青少年创意编程大赛 算法思维 C++编程省赛真题解
  • JAVASE入门十二脚-file,IO流
  • 【DeepSeek-V3】AI Model Evaluation Framework and index schedule AI模型能力评价指标及对比
  • 395. 至少有K个重复字符的最长子串
  • continuous batching、chunked-prefill相关概念
  • springboot3 集成 knife4j(接口文档)
  • 【前端学习路线】前端工程化 详细知识点学习路径(附学习资源)
  • 【 CVE-2025-21298】 通过ghidriff查看完整补丁差异
  • 使用SearchCursor检索要素类中的要素
  • 【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索
  • Go语言编程基础
  • MySQL基本架构SQL语句在数据库框架中的执行流程数据库的三范式
  • Pyside/Pyqt中QWebEngineView和QWebEnginePage的区别
  • 5.桥模式(Bridge)
  • 《大语言模型》综述学习笔记
  • lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心
  • Vmware虚拟机内存扩展与管理
  • qt内部的特殊技巧【QT】
  • Python 梯度下降法(二):RMSProp Optimize
  • 2022 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版