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

HarmonyOS4.0—自定义渐变导航栏开发教程

前言

今天要分享的是一个自定义渐变导航栏,本项目基于鸿蒙4.0。
先看效果:

在这里插入图片描述


这种导航栏在开发中也比较常见,特点是导航栏背景色从透明到不透明的渐变,以及导航栏标题和按钮颜色的变化。

系统的导航栏无法满足要求,我们需要自定义一个导航栏,我的思路是在导航栏中接收一个来自参数opNav,表示导航栏的透明度,根据这个参数动态设置导航栏的透明度和图片标题的颜色,导航栏代码如下:

@Component
export struct navBarView {@Prop opNav:number;@Prop colorNavBar:string;private navHeight:number = 56;navItemClick:(index)=>voidbuild() {Row() {Stack({ alignContent: Alignment.Start }) {Stack() {Image(this.opNav === 1 ? $r('app.media.back_b') : $r('app.media.back_w')).width(24).height(24).onClick(() => {this.navItemClick(0)})}.width(34).height(34).opacity(this.opNav === 1 ? 1 : 1 - this.opNav).margin({ left: 15, right: 15 })}Text('Add Expense').fontSize(15).fontColor(this.opNav === 1 ? Color.Black : Color.White).textAlign(TextAlign.Center).width(120).height(34).opacity(this.opNav === 1 ? 1 : 1 - this.opNav)Stack() {Image(this.opNav === 1 ? $r('app.media.more_b') : $r('app.media.more_w')).width(24).height(24)}.width(34).height(34).opacity(this.opNav === 1 ? 1 : 1 - this.opNav).borderRadius(17).margin({ left: 15, right: 15 })}.width('100%').height(this.navHeight).backgroundColor(this.colorNavBar).zIndex(1).justifyContent(FlexAlign.SpaceBetween)}
}

然后在使用导航栏的页面中引入并添加:

import {navBarView} from '../navBarView'
navBarView({ opNav: this.opNav, colorNavBar: this.colorNavBar}

接下来我们需要通过页面滑动的偏移量来计算导航栏的透明度,比如我用的是Scroll:

Scroll(this.scroller) {Column() { }.width('100%')}.onScroll((xOffset: number, yOffset: number) => {this.offsetY = this.scroller.currentOffset().yOffset;if (this.offsetY < 0) {this.scaleValue = (Math.abs(this.offsetY) + 100) / 100;} else {this.scaleValue = 1}if (this.offsetY >= 56) {this.offsetY = 56}this.opNav = this.offsetY / 56;this.colorNavBar = `rgba(255,255,255,${this.opNav})`}).edgeEffect(EdgeEffect.Spring).scrollBar(BarState.Off)

这样一个渐变的导航栏就完成啦。

最后

随着鸿蒙开发越来越火热,我了解到现在有很多小伙伴想入行鸿蒙,但又不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。我给大家整理了一份实用的鸿蒙(Harmony OS)开发学习手册资料用来跟着学习是非常有利于帮助大家提升鸿蒙开发技术的。

相对于网上那些碎片化的知识内容,这份学习资料的知识点更加系统化,更容易理解和记忆。资料包含了、应用开发导读(ArkTS)、HarmonyOS 概念、如何快速入门、开发基础知识、基于ArkTS 开发、等鸿蒙开发必掌握的核心知识要点,内容包含了(技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→《鸿蒙星河版开发教程指南》

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


有了路线图,怎么能没有学习资料呢,小编也准备了几套HarmonyOS NEXT学习视频 内容包含以下联

内容包含:ArkTS、TypeScript、ArkUI、资源分类…等知识点。

获取完整版高清学习路线,请点击→《HarmonyOS教学视频》

HarmonyOS教学视频

鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程

鸿蒙生态应用开发白皮书V2.0PDF:

获取白皮书:请点击→《鸿蒙生态应用开发白皮书V2.0PDF》

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册

一、入门必看

  1. 应用开发导读(ArkTS)
  2. .……

在这里插入图片描述


二、HarmonyOS 概念

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全
  5. …..

在这里插入图片描述


三、如何快速入门?

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. .……

在这里插入图片描述


四、开发基础知识

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. .……

在这里插入图片描述


五、基于ArkTS 开发

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. .……

在这里插入图片描述


更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙 (Harmony OS)开发学习手册》

相关文章:

  • HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)
  • Vue2前端权限控制实战
  • P8711 [蓝桥杯 2020 省 B1] 整除序列 存疑解决篇 Python
  • 【SpringSecurity】十三、基于Session实现授权认证
  • php 对接Pangle海外广告平台收益接口Reporting API
  • mysql之基本概念与安装
  • maven手动上传的第三方包 打包项目报错 Could not find xxx in central 解决办法
  • 从零开始写 Docker(七)---实现 mydocker commit 打包容器成镜像
  • 【C语言】指针基础知识(一)
  • Excel使用VLOOKUP函数
  • C# 使用OpenCvSharp4将Bitmap合成为MP4视频的环境
  • Android和IOS Flutter应用开发使用 Provider.of 时,可以使用 listen: false 来避免不必要的重建
  • 算法---二分查找练习-2(寻找旋转排序数组中的最小值)
  • 稀碎从零算法笔记Day22-LeetCode:
  • 【类脑智能】脑网络通信模型分类及量化指标(附思维导图)
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • Flex布局到底解决了什么问题
  • httpie使用详解
  • HTTP中的ETag在移动客户端的应用
  • Intervention/image 图片处理扩展包的安装和使用
  • vue学习系列(二)vue-cli
  • 高程读书笔记 第六章 面向对象程序设计
  • 码农张的Bug人生 - 初来乍到
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端技术周刊 2019-02-11 Serverless
  • 前端性能优化——回流与重绘
  • 使用API自动生成工具优化前端工作流
  • 算法-插入排序
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ArcGIS Pro 如何批量删除字段
  • #AngularJS#$sce.trustAsResourceUrl
  • (12)Hive调优——count distinct去重优化
  • (4)STL算法之比较
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (多级缓存)多级缓存
  • (分类)KNN算法- 参数调优
  • (六)软件测试分工
  • (三)终结任务
  • (四)图像的%2线性拉伸
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)负载均衡,回话保持,cookie
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转)项目管理杂谈-我所期望的新人
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 依赖注入的基本用发
  • .NET Framework .NET Core与 .NET 的区别
  • .net 简单实现MD5
  • .NET命名规范和开发约定
  • .Net中间语言BeforeFieldInit
  • /etc/motd and /etc/issue
  • @软考考生,这份软考高分攻略你须知道
  • [ C++ ] STL_list 使用及其模拟实现