当前位置: 首页 > news >正文

HarmonyOS NEXT开发:UI导航栏组件-NavigationBarView

 NavigationBarView 是什么?

  • NavigationBarView是ArkTS上的UI自定义导航栏组件,内置了导航栏的返回按钮、标题、搜索入口、右侧按钮等常用微功能。
  • NavigationBarView结构展示
    NavigationBarView                 
    ├── back
    │   ├── back_icon
    │   ├── back_title
    ├── centerContent
    │   ├── nav_title
    │   ├── nav_search
    │      ├── search_icon                  
    │      ├── search_placeholder
    ├── rightItems
    │   ├── firstItem
    │   ├── secondItem 
    │   ├── thirdItem               
    

创作背景


ArkTS不像Swift语言一样,没有存在栈容器导航栏,每个页面都需要自定义创建,虽然是一个很简单的组件定制,但也需要耽误一点时间。本着再小的工作量也需要有人做的态度,以及响应官方共建三方库组件的号召,在下不才,花点时间做出来大家一起用。在不影响当前版本的情况下,以后的迭代争取支持链式修改属性。

安装与使用


配置
  • 在DevEco Studio内使用NavigationBarView
  • 环境
    • ArkTS-3.2.12.5 +
    • API9 +
  • 工程级package.json内配置:
"dependencies": {"@maple/navigationbarview": "1.0.5"
}
安装
ohpm i @maple/navigationbarview
使用
/** 导入 */
import { NavigationBarView } from '@maple/navigationbarview'build() {/** 举例:只使用标题 */NavigationBarView({title: "Hello World",showBack: false})
}

属性说明


No.属性说明
1title导航栏标题
2titleFont标题字体大小
3titleColor标题字体颜色
4titleFontWeight标题字体粗细
5showBack是否显示返回按钮
6backImage返回图标
7backImageColor返回图标的颜色
8backImageSize返回图标的大小
9backImageLeftMargin返回图标距离左侧屏幕的间距
10backTitle返回按钮的标题
11backTitleColor返回按钮的标题字体颜色
12backTitleFont返回按钮的标题字体大小
13backTitleFontWeight返回按钮的标题字体粗细
14backTitleLeftMargin返回按钮标题距离返回图标的间距
15contentToCenter中间内容是否保持居中
16contentHorizontalSpace中间内容距离两侧的间距
17centerContentAlign中间内容的对齐方式,可通过该值修改contentToCenter=false下title居左显示
18searchPlaceholder搜索框文本占位符
19searchPlaceholderFontColor搜索框文本占位符的字体颜色
20searchPlaceholderFontSize搜索框文本占位符的字体大小
21searchPlaceholderFontWeight搜索框文本占位符的字体粗细
22searchImage搜索框图标
23searchImageColor搜索框图标的颜色
24searchImageSize搜索框图标的大小
25searchImageLeftMargin搜索框图标距离左侧的间距
26searchPlaceholderMargin搜索框文本占位符的周边间距
27searchBackgroundColor搜索框的背景颜色
28searchBarRadius搜索框的圆角,默认为内容的高度
29rightFirstImage从右侧屏幕往左的第一个按钮的图片
30rightSecondImage从右侧屏幕往左的第二个按钮的图片
31rightThirdImage从右侧屏幕往左的第三个按钮的图片
32rightImageSize右侧功能按钮的图标大小,宽高都是该值
33rightImageBoxWidth右侧功能按钮的事件点击区域宽度,高度跟随内容的高度
34rightImagesOnScreenRightMargin右侧功能按钮距离右侧屏幕的间距
35contentHeight内容的高度
36contentBottomSpace内容距离底部的间距
37navHeight导航栏的总高度,该高度参考的程序为【我的华为】App
38backClick返回按钮的点击事件,如果存在返回标题,点击返回标题也会触发该事件
39searchClick搜索框的点击事件
40rightFirstImageClick从右侧屏幕往左的第一个按钮的点击事件
41rightSecondImageClick从右侧屏幕往左的第二个按钮的点击事件
42rightThirdImageClick从右侧屏幕往左的第三个按钮的点击事件
43@BuilderParam centerContent⭐️替换中间的内容文本,替换后,需要自己实现【标题】或【搜索框】
44@BuilderParam rightFirstImageContent⭐️从右侧屏幕往左的第一个按钮的内容替换,一般可用来改为文本控件或者组合图标(双层图标),通过设置rightImageBoxWidth来拉开间距
45@BuilderParam rightSecondImageContent⭐️从右侧屏幕往左的第二个按钮的内容替换,一般可用来改为文本控件或者组合图标(双层图标),通过设置rightImageBoxWidth来拉开间距
46@BuilderParam rightThirdImageContent⭐️从右侧屏幕往左的第三个按钮的内容替换,一般可用来改为文本控件或者组合图标(双层图标),通过设置rightImageBoxWidth来拉开间距

举例


效果图例

                                       

                                       

                                        

内容支持替换
build() {Column() {NavigationBarView({centerContent: () => {this.navigationBarTitleBuilder()},rightFirstImageContent: () => {this.rightFirstImageContentBuilder()}})}}@Builder navigationBarTitleBuilder() {// 可自定义中间的内容Text("替换后的组件演示").fontSize(16)}@Builder rightFirstImageContentBuilder() {// 可自定义功能按钮的内容Image($r("sys.media.ohos_app_icon")).objectFit(ImageFit.Contain).width(20).height(20)}

                                     

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,不同的角度的问了一些问题,我明显感觉到一点,那就是许多人参与鸿蒙开发,但是又不知道从哪里下手,因为资料太多,太杂,无从选择。有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)文档用来跟着学习是非常有必要的。 

为了确保高效学习,建议规划清晰的学习路线

GitCode - 全球开发者的开源社区,开源代码托管平台希望这一份鸿蒙学习文档能够给大家带来帮助~

 鸿蒙(HarmonyOS NEXT)最新学习路线

该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发,不仅补充了华为官网未涉及的解决方案

路线图适合人群:

IT开发人员:想要拓展职业边界
零基础小白:鸿蒙爱好者,希望从0到1学习,增加一项技能。
技术提升/进阶跳槽:发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术

2.学习视频+学习PDF文档

HarmonyOS Next 最新全套视频教程 (鸿蒙语法ArkTS、TypeScript、ArkUI教程……)

纯血版鸿蒙全套学习文档(面试、文档、全套视频等)           

​​​​鸿蒙APP开发必备

总结

【纯血版鸿蒙全套学习文档】

总的来说,华为鸿蒙不再兼容安卓,对程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,才能在这个变革的时代中立于不败之地。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【JS】如何给fetch添加超时功能
  • 【MySQL】如何优化 SQL UPDATE 语句以提升性能
  • 录制黑神话:悟空背景音,制霸你的手机铃声(游戏录制教程)
  • Codeforces Round 970 (Div. 3)
  • 什么是外卖霸王餐系统?有什么特点?
  • 怎么用golang实现一个简易版c++的FIFO队列?
  • Vue——认识day05_监视属性
  • Apifox使用学习
  • Java:正则表达式 matches
  • 如何在D盘创建虚拟环境?包括安装PyTorch和配置PyCharm
  • 服务器数据恢复—LeftHand存储中raid5阵列多块磁盘离线的数据恢复案例
  • Profinet 从站转 EtherNet/IP 从站网关
  • volatile关键字的作用
  • 爆改YOLOv8|利用yolov10的PSA注意力机制改进yolov8-高效涨点
  • C# 使用国密SM4加密解密
  • Cookie 在前端中的实践
  • Django 博客开发教程 8 - 博客文章详情页
  • Iterator 和 for...of 循环
  • Js基础——数据类型之Null和Undefined
  • Linux中的硬链接与软链接
  • Mithril.js 入门介绍
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Zepto.js源码学习之二
  • 基于遗传算法的优化问题求解
  • 深度解析利用ES6进行Promise封装总结
  • 通信类
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 阿里云ACE认证学习知识点梳理
  • 阿里云服务器购买完整流程
  • 仓管云——企业云erp功能有哪些?
  • ​linux启动进程的方式
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #LLM入门|Prompt#3.3_存储_Memory
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (办公)springboot配置aop处理请求.
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (十八)三元表达式和列表解析
  • (十一)c52学习之旅-动态数码管
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)关于多人操作数据的处理策略
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @Autowired注解的实现原理
  • @JsonFormat与@DateTimeFormat注解的使用
  • [.net]官方水晶报表的使用以演示下载
  • [Android]竖直滑动选择器WheelView的实现
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [AX]AX2012 R2 出差申请和支出报告
  • [C#]OpenCvSharp 实现Bitmap和Mat的格式相互转换
  • [C++][ProtoBuf][初识ProtoBuf]详细讲解