发布时间:2026/7/17 1:19:30
鸿蒙原生开发手记:徒步迹 - 天气卡片组件开发 鸿蒙原生开发手记徒步迹 - 天气卡片组件开发集成天气数据打造实用的首页天气卡片一、前言天气信息对户外徒步非常重要。本文实现一个天气卡片组件展示当前位置的天气状况包括温度、天气图标、空气质量等。二、天气数据模型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/7/17 1:19:30

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/7/17 1:19:30

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

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

2026/7/17 1:19:30

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

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

2026/7/17 2:34:41

TeamoRouter:统一AI API网关的核心技术与实践指南

1. TeamoRouter:新一代AI API网关解析最近在开发者圈子里,TeamoRouter这个工具突然火了起来。作为一个长期关注AI工具生态的从业者,我第一时间对这个号称"Codex神器"的平台进行了深度测试。简单来说,TeamoRouter是一个聚…

2026/7/17 2:34:41

MCP协议实战:AI Agent视频转文档工作流全解析

1. 这不是“视频转文档”,而是AI Agent工作流的首次落地验证我第一次在Trae CLI里敲下trae run video-to-doc命令,看着终端里滚动出一连串带时间戳的JSON日志,最后生成一个结构清晰的Markdown文档——里面不仅有视频逐帧摘要,还自…

2026/7/17 2:34:41

Ubuntu终端命令操作指南与实用技巧

1. Ubuntu系统命令操作基础认知第一次接触Ubuntu终端时,那个闪烁的光标就像面对一扇未知的大门。作为Linux发行版中最亲民的存在,Ubuntu通过命令行提供了对系统最直接的控制能力。与Windows的图形化操作不同,命令行操作更像是与系统进行专业对…

2026/7/17 2:34:40

AI Agent工作流实战:PDF生成、飞书API与SMTP协同自动化

1. 项目概述:这不是一个“自动化脚本”,而是一次真实业务流的AI代理重构“Agent 工作流实录:从需求到交付的完整旅程(睡个午觉起来就干完)”——这个标题里藏着三个被日常忽略但极其关键的信号:实录、完整旅…

2026/7/17 2:29:40

Windows登录界面密码框消失的解决方案

1. Windows登录Bug现象解析 最近不少Windows用户遇到了一个奇怪的系统问题——登录界面突然不显示密码输入框的图标。这个Bug会导致用户在登录时看不到密码输入区域的视觉提示,只能凭记忆"盲打"密码。作为从Windows 95时代就开始折腾系统的老用户&#x…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/17 1:21:45

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/15 23:18:22

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/17 0:04:23

BiSheng JDK-build性能调优:构建速度提升30%的优化策略

BiSheng JDK-build性能调优:构建速度提升30%的优化策略 【免费下载链接】bishengjdk-build BiSheng JDK build and test scripts - common across all releases/versions 项目地址: https://gitcode.com/openeuler/bishengjdk-build 前往项目官网免费下载&am…

2026/7/16 13:58:36

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…