鸿蒙原生开发手记:徒步迹 - 天气卡片组件开发

发布时间:2026/9/15 0:46:26

鸿蒙原生开发手记:徒步迹 - 天气卡片组件开发 鸿蒙原生开发手记徒步迹 - 天气卡片组件开发集成天气数据打造实用的首页天气卡片一、前言天气信息对户外徒步非常重要。本文实现一个天气卡片组件展示当前位置的天气状况包括温度、天气图标、空气质量等。二、天气数据模型interface WeatherData { temperature: number; // 当前温度(°C) high: number; // 最高温 low: number; // 最低温 condition: string; // 天气状况晴/多云/雨等 icon: string; // 天气图标 humidity: number; // 湿度(%) windSpeed: number; // 风速(km/h) aqi: number; // 空气质量指数 aqiLevel: string; // 空气质量等级 }三、天气卡片组件Component struct WeatherCard { Prop weather: WeatherData { temperature: 22, high: 26, low: 18, condition: 晴, icon: ☀️, humidity: 45, windSpeed: 15, aqi: 55, aqiLevel: 良, }; build() { Row() { // 左侧温度 天气图标 Column() { Text(this.weather.icon) .fontSize(40); Text(${this.weather.temperature}°C) .fontSize(28) .fontWeight(FontWeight.Bold); Text(this.weather.condition) .fontSize(14) .fontColor(#666); } .alignItems(HorizontalAlign.Center); // 右侧详细信息 Column() { Text(${this.weather.high}° / ${this.weather.low}°) .fontSize(16); Row() { this.InfoChip(, ${this.weather.humidity}%); this.InfoChip(, ${this.weather.windSpeed}km/h); this.InfoChip(️, this.weather.aqiLevel); } .margin({ top: 8 }); } .layoutWeight(1) .alignItems(HorizontalAlign.End); } .width(100%) .padding(16) .backgroundColor(#E3F2FD) .borderRadius(16); } Builder InfoChip(icon: string, text: string) { Row() { Text(icon).fontSize(12); Text(text).fontSize(12).fontColor(#666).margin({ left: 3 }); } .padding({ left: 8, right: 8, top: 4, bottom: 4 }) .backgroundColor(rgba(255,255,255,0.6)) .borderRadius(12) .margin({ left: 4 }); } }四、获取天气数据async function fetchWeather(lat: number, lng: number): PromiseWeatherData { // 调用天气 API const response await apiService.request(/api/weather, GET, { lat, lng, }); if (response.code 200) { return response.data as WeatherData; } // 返回默认数据 return { temperature: 22, high: 26, low: 18, condition: 晴, icon: ☀️, humidity: 45, windSpeed: 15, aqi: 55, aqiLevel: 良, }; }五、集成到首页在首页的aboutToAppear中加载天气数据aboutToAppear(): void { this.loadWeather(); } async loadWeather(): Promisevoid { try { const weather await fetchWeather(39.908, 116.397); AppStorage.setOrCreate(currentWeather, weather); } catch (e) { console.error(加载天气失败); } }六、总结天气卡片是徒步 App 首页的重要组件为用户提供出行决策参考。通过组件化设计WeatherCard 可以灵活复用。下一篇文章将实现路线列表页使用 LazyForEach 优化长列表性能。下一篇预告鸿蒙原生开发手记徒步迹 - 路线列表页与LazyForEach
延伸阅读

更多相关文章

2026/9/15 0:44:55

Wallpaper Engine资源提取神器:RePKG让你轻松解锁创意宝库

Wallpaper Engine资源提取神器:RePKG让你轻松解锁创意宝库 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经被Wallpaper Engine中精美的动态壁纸所吸引&#x…

2026/9/13 10:20:04

C++26错误处理新特性:跨平台开发中的结构化错误信息传递

1. 项目概述:为什么C26的错误传递值得你熬夜关注?如果你是一位常年和C打交道的开发者,尤其是那些需要把代码部署到Windows、Linux、macOS甚至嵌入式系统上的朋友,那么“跨平台错误处理”这个话题,大概率是你心头的一根…

2026/9/14 9:03:02

鸿蒙原生开发手记:徒步迹 - MapKit 地图组件集成

鸿蒙原生开发手记:徒步迹 - MapKit 地图组件集成集成鸿蒙地图服务,实现路线展示和位置定位一、前言 地图是徒步 App 的核心功能。鸿蒙提供了 MapKit 地图组件,支持地图展示、标记、路线绘制、定位等功能。二、准备工作 2.1 申请 API Key 在华…

2026/9/15 0:46:19

猪行为识别数据集:从COCO标注到YOLOv8训练的完整实践

简介:一套面向智慧养殖场景的猪行为识别数据集,适合计算机视觉研发人员、农业工程研究者及畜牧智能化项目开发者使用。数据集聚焦猪圈内猪只的日常行为自动识别,覆盖喝、吃、睡觉、站立四个关键动作类别;标注文件采用COCO JSON格式…

2026/9/15 0:46:19

5200万USDT批量冻结背后:新币担保资金盘如何被一锅端

最近圈子里讨论得最凶的,是那笔5200万USDT被批量冻结的事。过去大家见惯了单个地址被Tether拉黑、某个账户被交易所风控,但这次不一样——它不是冻一两个地址,而是把整条“新币担保”的资金链条一锅端了。消息传出来之后,不少做项…

2026/9/15 0:46:19

AI工作搭子:职场人的意图-动作双向翻译引擎

1. 这不是又一个“AI办公助手”,而是一个能陪你改PPT、催报销、写周报的活人同事最近刷朋友圈,总能看到有人发截图:“刚让WorkBuddy帮我把老板那句‘再优化一下’翻译成具体修改项,直接标红了三页PPT里的字体间距和图表配色”&…

2026/9/15 0:46:19

基于MediaPipe的手势识别实战:从关键点到分类

简介:基于MediaPipe的手势识别源码包,面向计算机视觉入门者、AI应用开发者及高校学生,解决摄像头实时识别数字手势与石头剪刀布等常见动作的需求。压缩包仅2个Python文件,共3KB,代码极为精简,包含两个相互对…

2026/9/15 0:46:19

PSCAD与Simulink联合仿真:从MMC-HVDC到光伏微网建模全解析

在做电力电子与电力系统方向的仿真项目时,PSCAD和Simulink这两款工具基本是绕不开的。我的很多实际项目都围绕高压直流输电、光伏并网、MMC换流器以及微网运行控制展开,这套技术栈的好处在于:从电磁暂态级的精确建模,到控制策略的…

2026/9/15 0:41:18

中国地形三级阶梯GIS数据工作流解析与ArcGIS实操指南

简介:本资源是一套面向地理信息科学、遥感制图与GIS教学科研人员的中国地形三级阶梯标准化空间数据包,解决地形分阶可视化表达、高程分析与专题制图中基础底图缺失问题。资源共18个文件,包含标准Shapefile(shp/shx/dbf/prj等&…

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码