鸿蒙OS开发:【一次开发,多端部署】(导航栏) 导航栏

一多导航栏

介绍

本示例展示了导航组件在不同设备形态下的样式。

  • 在sm设备上,以tabs形式展示,内容、导航为上下样式布局,通过点击底部tabs切换内容;
  • 在md/lg设备上,以[SideBarContainer]形式展示,内容、导航为左右布局,通过点击侧边一二级菜单进行内容切换。
  • 开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

本示例使用[一次开发多端部署]中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,主要通过组件提供窗口断点事件,保证应用在不同设备或不同窗口尺寸下可以正常显示。

预览效果

image.png
本示例在预览器中的效果:

image.png

使用说明:

  1. 打开首页,在IDE编辑器中打开预览器查看预览效果。
  2. 在预览器中开启窗口拖拽模式,拖动窗口变化,可以查看组件的响应式变化,如下图所示: 
  3. 手动自由拖拽窗口,将应用窗口在sm/md/lg三种设备形态下进行切换并查看预览效果。
  4. 在sm/lg窗口下,点击左上角图标进行侧边栏样式切换

工程目录

MultiNavBar/entry/src/main/ets/
|---model
|   |---MenuType.ets                       // 侧边栏菜单数据类型
|   |---SideListData.ets                   // 侧边栏数据
|---pages                                  
|   |---AppStore.ets                       // 首页
|---common                                    
|   |---BreakpointSystem.ets               // 媒体查询
|   |---CommonMainTabs.ets                 // 一级Tabs
|   |---CommonSubTabs.ets                  // 二级Tabs
|   |---Configuration.ets                  // 样式配置
|   |---RecommendationList.ets             // 推荐页面
|   |---SideBarController.ets              // 侧边栏控制器  

`HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿`

搜狗高速浏览器截图20240326151450.png

具体实现

本示例介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口,将页面分拆为2部分。

整体布局

1.通过GridRow组件提供的断点事件,获取到当前窗口的断点,通过visibility属性将[Tabs]组件与[SideBarContainer]组件分别在sm/(md、lg) 形态下展示/隐藏。

2.同时通过断点,对组件设置不同的样式属性,以最优的效果展示。

侧边栏SideBar/底部TabsController

1.侧边栏内容布局通过Flex容器分别在sm/(md、lg)形态下进行横竖展示。

2.内容区域通过不同的窗口断点进行选择显隐。

3.md、lg形态侧边栏一级菜单对应sm形态最外层的TabsController组件、二级菜单对应里层的TabsController组件。

4.侧边栏同时存在两种形态list/tabs,通过侧边栏左上角图标切换,list模式下内容区域较小,根据窗口断点只显示图标/图标+文字,tabs模式下内容区域较大,显示图标+文字。

内容区域

1.Swiper组件通过获取窗口断点,设置displayCount属性,在不同窗口下显示不同数量的图片。

2.Gird组件通过获取窗口断点,设置columnsTemplate与rowsTemplate属性,在不同窗口下显示不同数量的Item。

3.内容浏览的连续性,进行窗口切换时,内容区域的浏览进度可以保持,不会进行重新刷新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/654936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

爷爷看了都会,打工人必备的摸鱼AI神器!免费!

去年,AI技术无疑成为了最为引人注目的焦点,层出不穷的创新应用令人目不暇接。尽管许多人对这股AI热潮的持久性持怀疑态度,但现实却用事实给予了最有力的反驳。AI所展现出的强大生产力,足以令人刮目相看。 而今年以来,…

鸿蒙大厂目前政策变现沉淀思考

鸿蒙引擎定制优化 鸿蒙端hotfix: 技术栈太大了,但是鸿蒙需要学习什么呢? 什么最有价值? 这就是接下来需要表达下我的观点: 1、APP开发 2、应用市场技术专员 【游戏、电商重型APP性能的处理 SmartPerf、构建自己的工…

Marvelous Designer12 解锁版安装教程 (3D服装设计软件)

前言 Marvelous Designer允许您使用我们的尖端设计软件创建美丽的3D虚拟服装。最后,使用工具在提高质量的同时节省时间,为您的设计注入活力。从基本衬衫到复杂的褶皱连衣裙和粗糙的制服,Marvelous Designer几乎可以将织物纹理和物理特性复制…

Flink系列一:flink光速入门 (^_^)

引入 spark和flink的区别:在上一个spark专栏中我们了解了spark对数据的处理方式,在 Spark 生态体系中,对于批处理和流处理采用了不同的技术框架,批处理由 Spark-core,SparkSQL 实现,流处理由 Spark Streaming 实现&am…

Apache-Doris单机部署

参考: 快速体验 Apache Doris - Apache Doris 1、Apache Doris是一款 基于MPP架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需 亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点…

内存泄漏面面谈

概述 主要介绍了内存泄漏的关注点是对象,对内存问题进行了分类并且确定本文关注点是内存泄漏,15种内存泄漏判断方式,hprof文件的用法和分析过程,以及memory profiler工具一些基本概念,最后提到了如何触发内存泄漏问题…

C# 读取 CSV 文件的方法汇总

文章目录 1. 使用System.IO命名空间中的类2. 处理标题行和指定列3. 使用CsvHelper库4. 高级功能和异常处理5. 使用 LINQ6. 总结 CSV(Comma-Separated Values,逗号分隔值)文件是一种简单的文本文件格式,用于存储表格数据。在C#中&a…

关于pdfbox读取pdf

最近,想着将pdf的文件进行读取其内容,发现了一个比较好用的依赖pdfbox。目前使用这个依赖,进行实现一个简单实例,如果之后需要使用到更深的了解,会进行更新。这里提醒一下:jdk8尽量采用pdfbox3.x版本。 对…

磁珠笔记汇总

磁珠笔记汇总 磁珠是和电感很相似的器件。 电感磁珠单位亨(H)欧姆(Ω)是否储能存储能量消耗高频能量应用场景通常用于开关电源吸收高频,EMC保护如何看待损耗使用电感时希望损耗越小越好使用磁珠时是利用其损耗来消耗不需要的高频分量 一、磁珠的工作原理 磁珠与…

代码随想录——左叶子之和(Leetcode404)

题目链接 BFS 队列 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right)…

FreeRTOS_信号量_学习笔记

信号量的特性 消息队列用于传输多个数据,但是有时候我们只需要传递状态,这个状态值需要用一个数值表示。套用队列笔记中的流水线例子,可以理解为流水线上工件的数量。 信号:起通知作用 量:还可以用来表示资源的数量 当…

SNP数据转型解析:云服务在现代企业数字化转型的必要性

为什么当今的企业想为数字化工作环境做好准备并保持竞争力,很难避免使用云服务呢? 要理解为什么企业没有云的替代选择,我们需要了解云服务的含义 - 它不仅仅指存储数据的另一个位置。各种云模型提供了极大的灵活性,可以根据需要操…

安卓开机启动阶段

目录 概述一、boot_progress_start二、boot_progress_preload_start三、boot_progress_preload_end四、boot_progress_system_run五、boot_progress_pms_start六、boot_progress_pms_system_scan_start七、boot_progress_pms_data_scan_start八、boot_progress_pms_scan_end九、…

Linux:IPC - System V

Linux:IPC - System V 共享内存 shm创建共享内存shmgetshmctlftok 挂接共享内存shmatshmdt shm特性 消息队列 msgmsggetmsgctlmsgsndmsgrcv 信号量 semSystem V 管理机制 System V IPC 是Linux系统中一种重要的进程间通信机制,它主要包括共享内存 shm&am…

[RK3588-Android12] 关于ES8388 喇叭+PDM回采 4+2配置

问题描述&#xff1a; ES8388 喇叭PDM回采 42配置如下&#xff1a; 解决方案&#xff1a; // MICpdmics: dummy-codec {status "okay";compatible "rockchip,dummy-codec";#sound-dai-cells <0>;};// MICpdm_mic_array: pdm-mic-array {status …

“一带一路”六国国际拳王冠军赛特克斯站新闻发布会顺利举行

实习记者&#xff1a;喀兰姆罕 5月24日&#xff0c;“一带一路”六国国际拳王冠军赛特克斯站新闻发布会在特克斯县阿克塔斯姑娘峰景区举行。这次拳王冠军赛事由新疆广播电视台、特克斯镇人民政府&#xff0c;特克斯县文化体育广播电视和旅游局主办&#xff0c;将于6月15日在特…

设计模式18—— 迭代器模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 迭代器模式&#xff08;Iterat…

vue系列之 插槽(Slot) 详解

插槽在vue中是一种很常见的写法&#xff0c;让父组件可以向子组件指定位置插入html结构&#xff0c;也是一种组件间通信的方式。一共有三种分类&#xff1a;默认插槽、具名插槽、作用域插槽&#xff0c;下面一一结合案例详细说明。原创不易&#xff0c;需要的小伙伴 收藏关注 哦…

最新斗音评论区截流拓客,自动引流【引流软件+使用教程】

面对社交媒体的蓬勃生长&#xff0c;加粉和拓展客户群成为品牌及个体的当务之急。新推出的一款技术工具恰到好处地迎合了这一需求&#xff0c;提供了一个多功能、适用性强的增粉与互动解决方案。该工具与抖音平台的所有版本兼容&#xff0c;消除了对特定版本的依赖。 利用这一…

浅揭秘:Java方法调用过程中栈内存到底干了什么

在深入Java编程的世界时&#xff0c;理解其方法调用背后的内存管理机制是至关重要的。 Java作为一种面向对象的语言&#xff0c;其内存管理自动化程度高&#xff0c;但背后涉及的原理却错综复杂&#xff0c;尤其是方法调用过程中的栈帧、堆、方法区等概念。 本文将通过代码示…