#鸿蒙通关秘籍#如何在HarmonyOS中实现状态栏随滚动事件的显隐变化?

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
时光笔ERP

在HarmonyOS中,通过Scroll组件的滚动事件onScroll来实现状态栏显隐变化的方法如下:

  1. 使用Stack组件添加两层状态栏。

    Stack() {
      Header({headOpacity: this.headOpacity, titleBackgroundColor: $r('app.color.ohos_id_color_background'), isTop: false});
      Header({headOpacity: this.opacityDefaultValue, titleBackgroundColor: $r('app.color.navigationbarchange_transparent_color'), isTop: true});
    }
    
  2. 获取Scroll的偏移量,计算透明度,并设置状态栏组件的透明度以达到显隐效果。

    Scroll(this.scroller) {
      // Other components
    }
    .width($r('app.string.navigationbarchange_width_and_height_one_hundred_percent'))
    .height($r('app.string.navigationbarchange_width_and_height_one_hundred_percent'))
    .scrollable(ScrollDirection.Vertical)
    .scrollBar(BarState.Off)
    .edgeEffect(EdgeEffect.None)
    .onScroll(() => {
      this.scrollOffset = this.scroller.currentOffset().yOffset;
      if(this.scrollOffset <= this.opacityComputeRadix) {
        this.headOpacity = this.scrollOffset / this.opacityComputeRadix;
      }
      else {
        this.headOpacity = this.opacityDefaultValue;
      }
    })
    

通过以上步骤,可以有效实现状态栏在页面滚动时的显隐效果。

分享
微博
QQ
微信
回复
6天前
相关问题
如何实现沉浸式状态栏
521浏览 • 1回复 待解决
HarmonyOS 关于ArkUI状态栏问题
316浏览 • 1回复 待解决
HarmonyOS 如何获取状态栏高度
582浏览 • 1回复 待解决
HarmonyOS 沉浸式状态栏
97浏览 • 1回复 待解决
鸿蒙如何获取导航状态栏高度
11374浏览 • 1回复 待解决
如何设置状态栏和导航颜色
2899浏览 • 1回复 待解决