新闻详情

新闻详情

首页 / 资讯中心 / 详情

平行视界导航模式切栏目就丢阅读位置?固定左栏和右侧覆盖需要两套状态

发布时间:2026/10/1 17:45:24来源:尧图网络
平行视界导航模式切栏目就丢阅读位置?固定左栏和右侧覆盖需要两套状态
平行视界导航模式切栏目就丢阅读位置固定左栏和右侧覆盖需要两套状态导航模式适合目录、邮件和会话左侧导航固定右侧内容覆盖切换。许多实现只保存 selectedId切换栏目后再回来文章滚动位置和详情历史全部归零。原因是“左栏选中项”和“右栏页面历史”被误当成同一个状态。两者生命周期不同必须拆开保存。先把边界说明白关注点应该怎么理解容易踩的坑selectedSection当前左栏栏目决定右侧根内容contentStacks每个栏目自己的右侧路径切换栏目不互相覆盖readingOffsets内容 id 到滚动位置布局稳定后再恢复这张表不是把官方文档换一种说法而是把接口边界变成能检查的工程条件。适配前先确认当前应用是否命中条件再决定是否改代码。没有命中的模块不应为了“统一写法”一起重构命中的模块也不能只改到编译不报错。案例一三个栏目各自保留右侧历史把右侧栈按 sectionId 分桶。切栏目只更换当前桶不清空其他桶栏目内部打开详情时只更新自己的栈。这样用户从“收藏”切到“最近”再回来仍停在刚才的文章。type NavState { selected: string; stacks: Recordstring, string[] }; function selectSection(s: NavState, section: string): NavState { return { selected: section, stacks: { ...s.stacks, [section]: s.stacks[section] ?? [] } }; } function pushContent(s: NavState, id: string): NavState { return { ...s, stacks: { ...s.stacks, [s.selected]: [...(s.stacks[s.selected] ?? []), id] } }; } let s pushContent({ selected: saved, stacks: {} }, article-1); s selectSection(s, recent); s selectSection(s, saved); if (s.stacks.saved[0] ! article-1) throw new Error(栏目历史丢失);这一段先验证外围决策。它的价值是让输入和结果可重复不依赖页面当前碰巧处于什么状态接入 ArkUI 或系统能力时再把结果映射成实际节点、路由或接口调用。案例二只在内容尺寸稳定后恢复滚动位置图片未加载时立刻恢复 offset后续内容变高会把阅读位置推走。保存时同时记录锚点 id 和相对偏移恢复时先定位锚点再应用小范围偏移。锚点不存在时回到顶部并记录一次非致命降级。type ReadingMark { anchorId: string; delta: number }; function restoreOffset(mark: ReadingMark, anchors: Recordstring, number): number { const top anchors[mark.anchorId]; return top undefined ? 0 : Math.max(0, top mark.delta); } if (restoreOffset({ anchorId: p3, delta: 24 }, { p3: 680 }) ! 704) throw new Error(阅读位置错误); if (restoreOffset({ anchorId: missing, delta: 24 }, {}) ! 0) throw new Error(缺失锚点未降级);第二个案例故意覆盖与第一个不同的失败条件。真实工程还应加入快速重复操作、前后台切换、窗口尺寸变化、空数据和恢复路径避免只验证一次成功流程。为什么选择这种做法只保存一个 selectedId 代码短但无法描述真实导航。按栏目保存栈、按内容保存锚点后状态可以序列化、测试和跨窗口模式恢复。需要限制历史深度并在内容版本变化时清理过期锚点避免状态无限增长。如果团队准备封装建议把公开接口保持在“输入事实、输出决策”的层级不让调用方直接依赖底层节点对象。这样既方便复用也便于写断言需要系统能力的部分留在薄薄的适配层升级时更容易定位。怎样验证哪些结论还不能提前说先把验证分成三层。第一层是纯逻辑输入、状态转换和边界条件可以在宿主环境运行断言第二层是 API 26 编译检查接口签名、系统能力和模型约束第三层才是目标设备检查触摸、键鼠、屏幕朗读、横竖屏、窗口缩放和前后台恢复。三层证据不能混在一句“已经跑通”里。当前示例中的纯 TypeScript 决策函数可以独立测试用于证明分支没有自相矛盾涉及 ArkUI 节点、系统手势、跨设备能力和系统服务的片段仍要使用 API 26 SDK 编译并在支持该能力的 HarmonyOS 7 设备或云调试设备上验收。这样写不是保守而是避免把没有发生过的真机结果当成事实。动态页面还要观察状态变化后的第二次结果首次进入正确不代表弹窗关闭、列表更新或窗口缩放后仍然正确。每次状态切换都应重新核对当前节点、焦点目标、返回路径和数据快照避免旧缓存继续影响新页面。建议每次留下以下记录DevEco Studio、SDK、targetSdkVersion 和设备系统版本。触发输入、页面层级、窗口尺寸、操作方式与最终状态。正常路径、空数据、快速重复操作、旋转或窗口缩放后的结果。屏幕朗读、字体放大、深浅色和键盘焦点是否仍然可用。性能对照使用同一批数据、同一设备状态和同一测量区间。可以复用成什么不要把适配判断散落在页面 Builder 中。更稳的结构是“能力探测或尺寸输入 - 纯函数决策 - 页面渲染 - 设备证据”。纯函数负责输出稳定的布局或交互意图页面只消费结果下一次系统升级时优先修改边界层和测试样本不必把所有页面重新翻一遍。发布前自查文章讨论的是 HarmonyOS 7 / API 26 当前资料不拿旧版本页面替代新接口。两个案例的输入、失败现象和解决目标不同不是同一段代码换名称。代码中的常量有来源没有来源的数值明确写成示例策略不伪装成系统规定。性能、兼容性与无障碍结论都有可重复的检查方法。日志不保存账号、文件内容、设备标识和其他敏感数据。官方资料HarmonyOS 7 平行视界新能力解读HarmonyOS 7 API 26 升级适配指南
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

实习打卡总内耗?从考勤规则拆解到异常处理的全流程指南 2026/10/1 18:31:29

实习打卡总内耗?从考勤规则拆解到异常处理的全流程指南

1. 我为什么一提打卡就心累:内耗的真实来源1.1 “忘记打卡”的恐惧,比忘记本身更消耗人我在实习的第三个星期才真正意识到,自己已经被一套打卡制度驯化成了一台焦虑机器。那天上午十点,办公区里大家都在忙,我本来应该专…

阅读更多 →
2026 AI平民化元年:测试工程师的突围之路 2026/10/1 18:31:29

2026 AI平民化元年:测试工程师的突围之路

最近半年,我几乎每周都会被人问同一个问题:AI发展这么快,测试工程师还有前途吗?问这话的,既有刚入行的新人,也有带着十几个人的测试负责人。我的回答一直很直接:有,但前提是换一张考…

阅读更多 →
Qwen3.8 Flash Next ROCmFPX 能用吗?可行性判断与实操验证 2026/10/1 18:31:29

Qwen3.8 Flash Next ROCmFPX 能用吗?可行性判断与实操验证

1. 这个标题到底在问什么先把标题拆开看。“qwen3.8 flash next rocmfpx 能用吗?”这句话其实塞了四个东西:一个模型名(qwen3.8)、一个推理加速方向(flash)、一个版本或分支标识(next&#xff0…

阅读更多 →
Java包装类与泛型:从缓存机制到类型擦除的避坑指南 2026/10/1 18:31:29

Java包装类与泛型:从缓存机制到类型擦除的避坑指南

干了这么多年Java&#xff0c;被问得最多的几个基础问题里&#xff0c;"包装类和泛型"一定排得上前三。尤其是面试的时候&#xff0c;十个里面有八个会问Integer缓存和List<String>能不能转成List<Object>这种题。但说实话&#xff0c;很多人是背了答案&…

阅读更多 →
模型Hub:AI工程化的关键基础设施与落地实践 2026/10/1 18:31:29

模型Hub:AI工程化的关键基础设施与落地实践

我一直觉得&#xff0c;在AI工程化这条路上&#xff0c;模型Hub是一个被严重低估的基础设施。很多人觉得它不过是个“存模型文件的地方”&#xff0c;跟网盘差不多。但真到模型数量多起来、版本迭代快起来、协作的人多起来&#xff0c;你就会发现&#xff0c;一个设计得当的模型…

阅读更多 →
基于JSP的影视创作论坛系统:从源码到答辩的JavaWeb毕设全解析 2026/10/1 18:31:16

基于JSP的影视创作论坛系统:从源码到答辩的JavaWeb毕设全解析

简介&#xff1a;一份基于JavaEE/JSP的影视创作论坛系统毕业设计资料包&#xff0c;面向计算机相关专业学生&#xff0c;覆盖从项目设计、编码实现到部署与答辩的完整流程。资源共18个文件&#xff0c;约151MB&#xff0c;包含项目报告&#xff08;doc/docx&#xff09;、答辩P…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉