【OpenHarmony/HarmonyOs 】实验室首页细节拆解:分类侧栏、搜索筛选与推荐探索交互
【OpenHarmony/HarmonyOs 】实验室首页细节拆解分类侧栏、搜索筛选与推荐探索交互本文基于我的 OpenHarmony/HarmonyOS 项目「物理视界 PhysicsVision」整理。实验室首页是整个应用的核心入口它承载了 28 个物理模型的分类展示、年级筛选、关键词搜索、最近浏览、推荐探索和随机探索。这一篇单独拆实验室首页的交互细节重点对应“全新视觉与交互体验”和“端侧智能推荐”的主题。一、实验室首页承担什么角色一个物理学习 App 不能只是把所有模型堆成一个列表。如果模型数量多用户很快会遇到几个问题不知道从哪里开始学找不到某个具体模型不清楚哪些模型适合自己年级学过的内容和没学过的内容混在一起每次打开都要重新寻找上次内容。「物理视界」的实验室首页就是为了解决这些问题。它不是简单列表而是一个学习入口左侧分类侧栏按学科方向筛选年级筛选按初中、高一、高二、高三定位搜索栏按模型名、描述、分类、难度搜索推荐探索优先推荐未学习的基础模型最近浏览帮助用户回到上次学习随机探索降低选择成本。这些细节组合起来就形成了一个很完整的学习流。二、模型数据的结构化组织实验室页中模型不是孤立存在的而是用多个数组维护元数据privatenames:string[] [声音的传播,光的反射,串并联电路,匀变速直线运动,自由落体,力的合成与分解]privatedescs:string[] [探索声波在不同介质中的传播,观察光线的反射规律,理解串联与并联电路特性,研究匀变速运动的规律]privategradeTags:string[] [初中,初中,初中,高一,高一]privatecategoryTags:string[] [波动,光学,电磁学,力学,力学]每个模型都有名称、描述、年级、分类、难度和路由。这让首页可以做筛选、搜索、推荐、统计和跳转。如果后续接入元服务或近场快传这些结构化数据也能直接复用。三、左侧分类侧栏让知识结构更清楚项目中分类包括privatecategories:string[] [全部,力学,电磁学,光学,热学,波动]侧栏每个分类都有图标和选中态ForEach(this.categories, (c:string,index:number) {Column({space: 4 }){Image(this.catIconRes[index]).width(20) .height(20) .fillColor(this.selectedCategoryindex?this.getCatAccent(index):$r(app.color.icon_gray))Text(c).fontSize(10).fontWeight(this.selectedCategoryindex? FontWeight.Bold : FontWeight.Normal).fontColor(this.selectedCategoryindex?this.getCatAccent(index):$r(app.color.text_sub)) } .backgroundColor(this.selectedCategoryindex? $r(app.color.bg_card): Color.Transparent) .borderRadius(12).onClick(() { animateTo({duration: 200,curve: Curve.EaseOut }, () { this.selectedCategory index }) this.updateDisplayList()}) })这段代码体现了三个细节图标和文字都跟随选中态变化点击分类后有轻动画状态变化后立即刷新模型列表。这种侧栏很适合知识型应用因为它能把内容结构放在用户眼前。四、年级筛选贴合学习阶段物理内容和年级强相关所以项目提供了年级筛选privategrades:string[] [全部,初中,高一,高二,高三]筛选按钮使用轻量文本块ForEach(this.grades, (g:string,index:number) {Text(g).fontSize(11).fontWeight(this.selectedGradeindex? FontWeight.Bold : FontWeight.Normal).fontColor(this.selectedGradeindex? #1A73E8 : $r(app.color.text_weak)) .backgroundColor(this.selectedGradeindex? $r(app.color.result_bg): Color.Transparent) .borderRadius(10).onClick(() { animateTo({duration: 200,curve: Curve.EaseOut }, () { this.selectedGrade index }) this.updateDisplayList()}) })年级筛选可以避免学生一上来就看到太难的内容。这也符合教育应用的基本原则先让用户找到适合自己的学习层级。五、搜索栏多字段匹配搜索不是只匹配名称而是匹配多个字段let searchMatch:boolean keyword.length 0||this.names[i].includes(keyword) ||this.descs[i].includes(keyword) ||this.categoryTags[i].includes(keyword) ||this.gradeTags[i].includes(keyword) ||this.difficulties[i].includes(keyword)这意味着用户输入“光学”可以找到光学模型“高三”可以找到高三模型“挑战”可以找到高难度内容“电场”可以找到电场线、电场偏转。对学习应用来说搜索应该理解用户的意图而不是只做标题匹配。六、筛选主逻辑分类、年级、搜索同时生效完整筛选逻辑如下updateDisplayList(): void {this.listAnim falselet result: number[] [] let keyword: string this.searchText.trim()for(let i 0; i this.names.length; i) { let categoryMatch: boolean this.selectedCategory 0||this.categoryTags[i] this.categories[this.selectedCategory] let gradeMatch: boolean this.selectedGrade 0||this.gradeTags[i] this.grades[this.selectedGrade] let searchMatch: boolean keyword.length 0||this.names[i].includes(keyword) ||this.descs[i].includes(keyword)if(categoryMatch gradeMatch searchMatch) { result.push(i) } }this.displayList result }这里使用的是“且”关系分类要匹配年级要匹配搜索要匹配。这样筛选结果更精准。七、推荐探索项目里的端侧智能雏形推荐逻辑优先找未探索的基础模型getRecommended(): number[] { let result: number[] []for(let i 0; i this.names.length; i) {if(!this.isVisited(i) this.difficulties[i] 基础) { result.push(i)if(result.length 4)break} }if(result.length 4) {for(let i 0; i this.names.length; i) {if(!this.isVisited(i) this.difficulties[i] 进阶) { result.push(i)if(result.length 4)break} } }returnresult }虽然这不是大模型 AI但它是很实用的端侧智能不联网不上传用户数据根据本地学习状态推荐规则可解释。对于教育应用来说这种“本地可解释推荐”比黑盒推荐更可靠。八、最近浏览学习不断线最近浏览列表取最近 6 个模型updateRecentList():void{if(this.visitedModels.length0) {this.recentList []return}letparts:string[] this.visitedModels.split(,)letresult:number[] []letstart:number parts.length6? parts.length-6:0for(leti parts.length-1; i start; i--) {letval:numberparseInt(parts[i])if(val 0 val this.names.length) { result.push(val) } }this.recentList result }这个功能非常适合全场景智慧学习。用户在手机上学过一个模型后续如果做跨设备同步或备份恢复就能在平板继续学习。九、随机探索降低选择压力项目还提供随机探索navigateToRandom():void{letunvisited:number[] []for(leti 0; i this.names.length; i) {if(!this.isVisited(i)) unvisited.push(i) }lettarget:number0if(unvisited.length0) { target unvisited[Math.floor(Math.random() * unvisited.length)] }else{ target Math.floor(Math.random() *this.names.length) }this.recordVisit(target) router.pushUrl({url:this.routes[target] }).catch(() {}) }它优先随机未探索模型而不是完全随机。这也是一个小小的学习引导用户想不出学什么时系统帮他迈出下一步。十、总结实验室首页的价值不只是展示模型而是组织学习路径。分类侧栏、年级筛选、关键词搜索、推荐探索、最近浏览、随机探索这些功能共同构成了一个轻量但完整的学习入口。这篇文章对应的主题是全新视觉与交互体验 端侧智能推荐 全场景学习续接。它没有脱离项目因为所有细节都来自当前代码它也没有空谈 AI而是从本地学习状态出发说明如何把一个模型列表做成真正可用的学习首页。

相关新闻

阿根廷VS佛得角美加墨世界杯超级大黑马能否挑落梅西战平潘帕斯?

阿根廷VS佛得角美加墨世界杯超级大黑马能否挑落梅西战平潘帕斯?

世界杯三十二强淘汰赛阿根廷VS佛得角,北京时间7月4日早上6点在迈阿密硬石体育场开赛。本场是卫冕冠军对阵非洲黑马的经典对决,两队整体实力、大赛底蕴差距悬殊,也是本届世界杯淘汰赛看点十足的强弱对话。小组赛阶段两队晋级表现截然不同。阿根…

2026/7/4 19:30:24阅读更多 →
爬虫转大模型:换个角度从方案设计到上线检查,从问题拆解到交付验证

爬虫转大模型:换个角度从方案设计到上线检查,从问题拆解到交付验证

如果你正准备往大模型方向转,《爬虫转大模型:换个角度,从方案设计到上线检查》这类问题别只看热度。更重要的是判断自己该补哪块能力,以及怎么证明你真的会。摘要这篇面向想从爬虫和自动化采集转向 AI 数据工程的开发者&#xff0…

2026/7/4 19:30:24阅读更多 →
终极指南:如何快速上手Google Cloud Vision API图像识别技术

终极指南:如何快速上手Google Cloud Vision API图像识别技术

终极指南:如何快速上手Google Cloud Vision API图像识别技术 【免费下载链接】cloud-vision Sample code for Google Cloud Vision 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-vision Google Cloud Vision API是Google提供的一项强大的图像识别服务…

2026/7/4 19:30:24阅读更多 →
珠宝店做网站就找我!一站式解决展示、销售、定制全流程

珠宝店做网站就找我!一站式解决展示、销售、定制全流程

模版案例钻石与宝石展示网站 - 专业珠宝行业模板 开珠宝店是不是总遇到这些问题? 线下客流减少,只能守店等客 微信沟通效率低,产品细节说不清 钻戒定制反复改,费时又费力 老客户流失,活动通知难触达 想做线上&…

2026/7/4 20:35:45阅读更多 →
LangFlow 1.x 系列【3】入门案例

LangFlow 1.x 系列【3】入门案例

文章目录1. 前置准备1.1 安装并启动 Langflow1.2 设置中文2. 简单工作流2.1 添加模型提供商2.2 选择模板2.3 节点编排2.3.1 提示词模板2.3.2 聊天输入2.3.3 语言模型2.3.4 聊天记录2.4 对话测试1. 前置准备 1.1 安装并启动 Langflow 访问 http://localhost:7860/ &#xff1a…

2026/7/4 20:35:45阅读更多 →
如何快速搭建智能微信机器人:WeChatFerry完整指南

如何快速搭建智能微信机器人:WeChatFerry完整指南

如何快速搭建智能微信机器人:WeChatFerry完整指南 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Trending/w…

2026/7/4 20:35:45阅读更多 →
抖音下载神器:免费批量下载工具让你的精彩瞬间永不丢失

抖音下载神器:免费批量下载工具让你的精彩瞬间永不丢失

抖音下载神器:免费批量下载工具让你的精彩瞬间永不丢失 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…

2026/7/4 20:35:45阅读更多 →
Large Language Models Meet Text-Attributed Graphs: A Survey of Integration Frameworks and Applica...

Large Language Models Meet Text-Attributed Graphs: A Survey of Integration Frameworks and Applica...

文章核心总结与创新点 主要内容 文章是首篇从“编排视角”系统综述大型语言模型(LLMs)与文本属性图(TAGs)融合的研究,核心围绕两大方向展开:一是“LLM for TAG”(LLM赋能TAG任务),通过顺序、并行编排及TAG专用预训练等策略,增强TAG的表示学习与语义推理;二是“TAG…

2026/7/4 20:35:45阅读更多 →
终极AMD Ryzen调试工具SMUDebugTool:5步成为硬件掌控大师

终极AMD Ryzen调试工具SMUDebugTool:5步成为硬件掌控大师

终极AMD Ryzen调试工具SMUDebugTool:5步成为硬件掌控大师 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…

2026/7/4 20:30:44阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/4 14:25:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/4 14:57:00阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →