鸿蒙掌上驾考宝典应用开发11:Swiper 轮播组件——从驾考题库切换看滑动容器
第11篇Swiper 轮播组件——从驾考题库切换看滑动容器一、引言Swiper 是鸿蒙 ArkUI 中用于实现轮播切换的容器组件支持左右滑动切换页面。DriverLicenseExam 项目在科目切换场景中使用了 Swiper 组件实现了科目一/二/三/四内容的滑动切换。本文将详细解析 Swiper 组件的使用。二、Swiper 基本用法2.1 科目切换的实现在 HomeView 中Swiper 与 Tab 联动实现科目内容的切换// products/entry/src/main/ets/pages/home/HomeView.ets ComponentV2 export struct HomeView { swiperController: SwiperController new SwiperController(); Local currentTab: number 0; Builder tab() { Row() { ForEach(KEMUTAB_LIST, (item: KEMUTabListItem, index: number) { Column() { Text(item.label) .fontColor(this.currentTab index ? $r(sys.color.font_primary) : $r(sys.color.font_secondary)) .fontSize(14) .fontWeight(this.currentTab index ? FontWeight.Bold : FontWeight.Normal); if (this.currentTab index) { Divider().color($r(sys.color.comp_divider)).strokeWidth(2); } } .onClick(() { this.swiperController.changeIndex(index); // Tab 点击时切换 Swiper this.tabChange(index); }); }); } } build() { // ... 其他内容 Swiper(this.swiperController) { this.subjectOneAndFour() // 科目一内容 this.subjectTwoAndThree() // 科目二内容 this.subjectTwoAndThree() // 科目三内容 this.subjectOneAndFour() // 科目四内容 } .cachedCount(0) // 不缓存页面 .index(this.currentTab) // 初始化索引 .loop(false) // 禁止循环 .indicator(false) // 隐藏指示器 .onChange((targetIndex: number) { this.currentTab targetIndex; // 滑动时同步 Tab 状态 }); } }2.2 Swiper 核心属性属性值说明cachedCount0预加载页面数0 表示不预加载indexnumber当前显示的页面索引loopfalse是否循环播放indicatorfalse是否显示导航点指示器onChangecallback页面切换时的回调三、Swiper 与 Tab 的联动机制3.1 双向同步// Tab 点击 → Swiper 切换 tab.onClick(() { this.swiperController.changeIndex(index); this.tabChange(index); }); // Swiper 滑动 → Tab 高亮 Swiper.onChange((targetIndex: number) { this.currentTab targetIndex; });3.2 SwiperController 控制swiperController: SwiperController new SwiperController(); // 编程式切换 swiperController.changeIndex(2); // 切换到指定索引 swiperController.showNext(); // 下一页 swiperController.showPrevious(); // 上一页 swiperController.finishAnimation(); // 立即完成当前动画四、性能优化策略4.1 cachedCount 的权衡// 场景1不缓存适合页面内容较少的场景 Swiper() .cachedCount(0) // 只渲染当前页面 // 场景2预缓存适合页面内容较多的场景 Swiper() .cachedCount(2) // 预渲染前后各 2 页4.2 内容复用同一 Builder 函数可被多次复用减少代码重复// 科目二和科目三共用相同的内容模板 Swiper(this.swiperController) { this.subjectOneAndFour() // 科目一 this.subjectTwoAndThree() // 科目二复用 this.subjectTwoAndThree() // 科目三复用 this.subjectOneAndFour() // 科目四 }五、总结Swiper 组件是实现滑动切换场景的核心容器配合 Tab 组件可以实现常见的Tab 切换 内容滑动交互模式。合理使用 cachedCount 属性可以在性能和体验之间取得平衡。关键源码文件products/entry/src/main/ets/pages/home/HomeView.ets— Swiper Tab 联动

相关新闻

揭秘95%成功率的大麦自动抢票系统:技术架构与实战指南

揭秘95%成功率的大麦自动抢票系统:技术架构与实战指南

揭秘95%成功率的大麦自动抢票系统:技术架构与实战指南 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 在热门演唱会门票秒光的激烈竞争中…

2026/9/25 22:15:11 阅读更多 →
Subfinder终极指南:免费字幕工具让视频观影体验更完美

Subfinder终极指南:免费字幕工具让视频观影体验更完美

Subfinder终极指南:免费字幕工具让视频观影体验更完美 【免费下载链接】subfinder 字幕查找器 项目地址: https://gitcode.com/gh_mirrors/subfi/subfinder 🎬 你是否曾经因为找不到合适的字幕而错过精彩的外语电影?或者因为字幕不同步…

2026/9/24 15:39:37 阅读更多 →
自动审查技能创下66轮重构记录

自动审查技能创下66轮重构记录

引言 这一数字背后,并非简单的重复劳动,而是对代码质量极限的挑战。在传统开发流程中,重构往往伴随着高风险和不可预测性,尤其是当涉及到底层架构调整时。然而,通过引入高度自动化的审查技能,我们成功地将这…

2026/10/1 15:05:20 阅读更多 →

最新新闻

OpenShell使用手册:从安装配置到故障排查,定制你的Windows经典开始菜单

OpenShell使用手册:从安装配置到故障排查,定制你的Windows经典开始菜单

“OpenShell”这个名字,Windows老用户多半不会陌生。Windows 8把开始菜单拿掉的那几年,Classic Shell几乎成了装机必备,后来Classic Shell停止维护,开源社区接手,项目改名为Open-Shell(社区常连写成OpenShe…

2026/10/3 10:15:01 阅读更多 →
AI工程从零起步:数据、模型到部署的全链路实战

AI工程从零起步:数据、模型到部署的全链路实战

开头部分直接进入从业者的口吻,不做铺垫、不说废话。要把"ai-engineering-from-scratch"这个标题和"ai-engineering"这个关键词融入前100字。这篇文章应该讲的是从零开始做AI工程的完整链路,包括怎么选方向、怎么搭工具链、怎么写第…

2026/10/3 10:15:01 阅读更多 →
海南省市县乡村五级行政区划SHP数据全解析

海南省市县乡村五级行政区划SHP数据全解析

简介:海南省五级行政区划SHP矢量数据面向GIS开发者、城乡规划与空间分析研究人员,涵盖省、市、县、乡镇(街道)、社区(村界)完整层级,可支撑宏观规划到基层精细化管理的地图制作与空间分析。压缩…

2026/10/3 10:15:00 阅读更多 →
Open-Shell 使用指南:在Win10/11找回高效经典开始菜单和工具栏

Open-Shell 使用指南:在Win10/11找回高效经典开始菜单和工具栏

如果你对 Windows 10/11 的“磁贴式”开始菜单提不起兴趣,又总觉得新版资源管理器的工具栏越来越别扭,那么 Open-Shell 这个名字你应该不陌生。它的前身是 Classic Shell,一个从 2011 年做到 2017 年的免费工具,作者 Ivo Beltchev…

2026/10/3 10:15:00 阅读更多 →
DCU上Softmax算子优化实践:从CUDA思路到40倍性能提升

DCU上Softmax算子优化实践:从CUDA思路到40倍性能提升

做国产DCU算子适配这半年多,我最大的感受是:真正卡人的地方往往不是硬件本身,而是你还在用CUDA那一套思路去套HIP。尤其是像Softmax这种看似三行公式就能写完的算子,真放到DCU上跑一轮,你会发现访存、归约、向量化、数…

2026/10/3 10:15:00 阅读更多 →
DOORS需求模块化拆分实战:汽车电子需求管理从混乱到有序

DOORS需求模块化拆分实战:汽车电子需求管理从混乱到有序

1. 先想清楚再动手:为什么汽车需求必须模块化做汽车电子需求管理这些年,我见得最多的场面就是:项目启动时一份几百条的Word/Excel需求文档满天飞,供应商拿着PDF来回确认,测试团队对着表格逐条设计用例。等到第一轮设计…

2026/10/3 10:13:59 阅读更多 →

日新闻

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南

把回忆蒸馏成 AI 的浪漫实验:为什么你需要前任.skill 完整指南 【免费下载链接】ex-skill 前任 skill 项目地址: https://gitcode.com/gh_mirrors/exsk/ex-skill 前任.skill 是一个运行在 Claude Code 上的开源 Skill:导入微信、iMessage、短信、…

2026/10/3 0:00:27 阅读更多 →
45个经典Linux面试题:从命令到网络排障的完整考点解析

45个经典Linux面试题:从命令到网络排障的完整考点解析

刚开始带应届生的时候,我最头疼的就是他们拿着一摞Linux面试题背得滚瓜烂熟,一上机全露馅。后来自己从被面的人变成面别人的人,才慢慢摸清楚:Linux面试题考的根本不是答案本身,而是你面对一个不确定的系统问题时&#…

2026/10/3 0:01:28 阅读更多 →
SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

SAP生产预留实战指南:MB21/MB23/MB25协同与MRP集成

简介:本资源是一份面向SAP ABAP开发人员、生产计划专员及ERP实施顾问的实操型操作指南,聚焦SAP生产预留核心业务场景,系统解决物料预留创建、查询、校验与批量处理等高频问题。文档以结构化方式覆盖预留背景原理、OMC2编码规则、工厂级参数配…

2026/10/3 0:01:28 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 9:14:33 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 9:47:50 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/3 9:42:31 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →