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

2024-03-20 1972阅读

温馨提示:这篇文章已超过402天没有更新,请注意相关的内容是否还可用!

前言

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

先看效果:

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

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

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

@Component
export struct navBarView {
  @Prop opNav:number;
  @Prop colorNavBar:string;
  private navHeight:number = 56;
  navItemClick:(index)=>void
  build() {
    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 = 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)最新学习路线

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


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

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

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

HarmonyOS教学视频

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

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

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

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

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

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

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

一、入门必看

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

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


二、HarmonyOS 概念

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

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


三、如何快速入门?

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

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


四、开发基础知识

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

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


五、基于ArkTS 开发

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

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


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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]