HarmonyOS 整体容器组件(Navigation)

今晚 我们一起来看看 Navigation

我们可以编写代码如下

@Entry
@Component
struct Index {build() {Row() {Column() {Navigation() {}.width('100%').height('100%').backgroundColor("#F1F1F1")}.width('100%')}.height('100%')}
}

Navigation 通常是作为容器被使用
这里 我们给他百分之百的宽高 然后 设置背景颜色 灰色

很明显 我们整个界面成灰色
在这里插入图片描述
那么 还是老规矩 我们将鼠标贴到 Navigation 组件上 点击进入api文档
在这里插入图片描述
首先 并没有接口参数 有一些属性
在这里插入图片描述
属性有
title 标题
ubTitle 副标题
menus 右上角菜单 最多有三个
titleMode 页面标题的模式 NavigationTitleMode类型 具体有哪些 可以自己去 NavigationTitleMode. 去慢慢试
toolBar 页面工具类内容 可以直接往里面写元素 也可以 一个对象 items字段是一个数组

在这里插入图片描述
hideToolBar 是否隐藏它的工具栏 默认是 false 不隐藏
hideTitleBar 是否隐藏标题栏 基本概念也是一样的

在这里插入图片描述
下面就是一些具体的对象说明
在这里插入图片描述
我们就来基本看一下
我们先来个 小 title

Navigation() {
}
.width('100%')
.height('100%')
.backgroundColor("#F1F1F1")
.title("测试Navigation")

运行之后 效果还是相当明显的
在这里插入图片描述
然后 当我们想用 ubTitle 但是 这里官方已经告诉我们这个要被淘汰了
在这里插入图片描述
一定要用 也是可以的 但是 这个东西 画着个线 而且 你用这个 搞不好哪天就不支持 代码就跑不起来了 所以这里并不建议使用
在这里插入图片描述
hideTitleBar 控制标题栏是否隐藏 我们这里给个true

Navigation() {}
.width('100%')
.height('100%')
.backgroundColor("#F1F1F1")
.title("测试Navigation")
.hideTitleBar(true)

整个标题栏就被隐藏了
在这里插入图片描述
toolBar 我们先这样写

Navigation() {}
.width('100%')
.height('100%')
.backgroundColor("#F1F1F1")
.title("测试Navigation")
.toolBar({items: [{value: "点赞"},{value: "空间"},{value: "我的"}]
})

这里 我们toolBar 先用一个 object对象形式 里面字段 items 是个数组 然后里面 每一个下标都是一个对象 里面的value字段就是控制内容文本
加上之后 我们页面底部就可以看到 我们写的这些内容
在这里插入图片描述
然后 我们还可以 写一个元素 写到title等内容中
我们可以这样写

@Entry
@Component
struct Index {build() {Row() {Column() {Navigation() {}.width('100%').height('100%').backgroundColor("#F1F1F1").title(this.BuilderTitle)}.width('100%')}.height('100%')}@Builder BuilderTitle() {Column() {Text("测试工具演练").fontColor("rgb(0, 0, 255)").fontSize(30)}}
}

我们通过 Builder 定义了一个 叫 BuilderTitle的元素 名字随便取
然后 里面一个Column 列组件 然后用了一个Text文本组件 下面定义了 字体大小 和 颜色 然后直接将它写进Navigation的Title属性中
运行之后 就正常展示出来了
在这里插入图片描述
那么 同理 toolBar 也可以通过这种方式改造
我们编写代码如下

@Entry
@Component
struct Index {build() {Row() {Column() {Navigation() {}.width('100%').height('100%').backgroundColor("#F1F1F1").title(this.BuilderTitle).toolBar(this.BuilderItems)}.width('100%')}.height('100%')}@Builder BuilderTitle() {Column() {Text("测试工具演练").fontColor("rgb(0, 0, 255)").fontSize(30)}}@Builder BuilderItems() {Row() {Column() {Image("https://img-qn.51miz.com/Element/00/21/31/83/cdd12d75_E213183_bf0119ef.png").width(30).height(30)Text("点赞").fontSize(25)}Column() {Image("https://img1.baidu.com/it/u=2070627238,441578014&fm=253&fmt=auto&app=138&f=JPEG?w=544&h=500").width(30).height(30)Text("投币").fontSize(25)}Column() {Image("https://img.tukuppt.com/png_preview/00/46/77/csToEUMN7D.jpg%21/fw/780").width(30).height(30)Text("关注").fontSize(25)}}}
}

这里 我们还是通过 Builder 定义了一个元素 叫 BuilderItems
然后 里面一个 Row 行组件 下面多个 Column 列组件
每个列组件下面都是 一个image 图片元素 大小都给 30
然后下面一个 text组件 编写了文本内容

运行如下
在这里插入图片描述
效果是出来了 但是样子属实有点丑
这里 我们可以给 Row 的 justifyContent 子元素水平放心 设置为两端对齐

Row() {
}.width("100%")
.justifyContent(FlexAlign.SpaceBetween)

设置 元素宽度为父元素宽度的百分之百 然后 justifyContent(FlexAlign.SpaceBetween) 两端对齐
运行结果如下
在这里插入图片描述
我们这下面 还都可以来个点击事假

@Builder BuilderItems() {Row() {Column() {Image("https://img-qn.51miz.com/Element/00/21/31/83/cdd12d75_E213183_bf0119ef.png").width(30).height(30)Text("点赞").fontSize(25)}.onClick(()=> {console.log("感谢您的小攒攒");})Column() {Image("https://img1.baidu.com/it/u=2070627238,441578014&fm=253&fmt=auto&app=138&f=JPEG?w=544&h=500").width(30).height(30)Text("投币").fontSize(25)}.onClick(()=> {console.log("感谢投币");})Column() {Image("https://img.tukuppt.com/png_preview/00/46/77/csToEUMN7D.jpg%21/fw/780").width(30).height(30)Text("关注").fontSize(25)}.onClick(()=> {console.log("感谢关注");})}.width("100%").justifyContent(FlexAlign.SpaceBetween)}

我们依次点击触发它们的 onClick
在这里插入图片描述
然后 我们试试 在Navigation中加组件

Navigation() {Text("java").width(130)Text("html").width(130)Text("php").width(130)
}
.width('100%')
.height('100%')
.backgroundColor("#F1F1F1")
.title(this.BuilderTitle)
.toolBar(this.BuilderItems)

就相当于一个列组件的效果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是全链路压测?

随着互联网技术的发展和普及,越来越多的互联网公司开始重视性能压测,并将其纳入软件开发和测试的流程中。 阿里巴巴在2014 年双11 大促活动保障背景下提出了全链路压测技术,能更好的保障系统可用性和稳定性。 什么是全链路压测?…

工业异常检测AnomalyGPT-Demo试跑

写在前面:如果你有大的cpu和gpu可以使用,直接根据官方的安装说明就可以,如果没有,可以点进来试着看一下我个人的安装经验。 一、试跑环境 NVIDIA4090显卡24g,cpu内存33G,交换空间8g,操作系统ubuntu22.04(试跑过程cpu…

Uibot (RPA设计软件)培训前期准备指南————课前材料三

(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~) 紧接着小北的前两篇博客,友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件)-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/1…

互联网上门洗衣洗鞋小程序开发搭建;

互联网搭建的洗衣洗鞋小程序,具备多重功能。首先,用户轻松注册与登录,获取一站式洗涤服务体验。接着,用户可在线提交洗衣、洗鞋订单,并随时查看订单状态和历史记录,全程跟踪无忧。再有,您可便捷…

【Flutter 开发实战】Dart 基础篇:从了解背景开始

想要学会用 Flutter 开发 App,就不可避免的要学习另一门很有意思的编程语言 —— Dart。很多小伙伴可能在学习 Flutter 之前可能都没听说过这门编程语言,我也是一样,还以为 Dart 是为了 Flutter 而诞生的;然而,当我们去…

大创项目推荐 深度学习图像风格迁移

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题…

系统概要设计说明书

系统概要设计说明书 1.整体架构 2.功能架构 3.技术架构 4.运行环境设计 5.设计目标 6.接口设计 7.性能设计 8.运行设计 9.出错设计 全文档获取进主页

Linux———head,tail命令详解(狠狠爱住)

目录 head 命令: head 命令基本语法: 常用选项 示例 显示文件的前 10 行: 显示文件的前 5 行: 显示文件的前 100 个字节: 不显示文件名的标题信息: 显示文件名的标题信息: tail 命令&…

vscode使用npm安装element-UI并添加router路由

npm安装vue,添加淘宝镜像-CSDN博客 elementUI安装与配置 安装可以看我上一篇文章 vscode控制台输入指令 npm i element-ui -S 安装完成后在目录结构打开下图文件 可以看到多了一行elementui就代表安装成功了 下面是项目常用的结构 安装完成后需要启用elementU…

什么是API网关代理?

带有API网关的代理服务显着增强了用户体验和性能。特别是对于那些使用需要频繁创建和轮换代理的工具的人来说,使用 API 可以节省大量时间并提高效率。 了解API API(即应用程序编程接口)充当服务提供商和用户之间的连接网关。通过 API 连接&a…

R语言频率分布直方图绘制教程

本篇笔记分享R语言绘制直方图的方法,通过多种展示风格对数据进行可视化,主要用到ggplot、ggpubr等包。 什么是直方图? 直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的柱子表示数…

[AutoSar]基础部分 RTE 05 Port的实例化和初始化

目录 关键词平台说明一、端口类型二、端口的实例化2.1 创建application port2.2 实例化 三、初始化 关键词 嵌入式、C语言、autosar、Rte 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C,C编译器HighTec (GCC) 一、端口类型 如下图所示&am…