HarmonyOS鸿蒙Next中请问工具栏的沉浸光感特效如何实现

HarmonyOS鸿蒙Next中请问工具栏的沉浸光感特效如何实现 如图圈内的工具栏也有沉浸光感的效果,但是官方给出的只有tab栏的沉浸光感材质,请问这种效果是如何实现的,魔改tabbar吗

图片


更多关于HarmonyOS鸿蒙Next中请问工具栏的沉浸光感特效如何实现的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

开发者您好,根据您的描述,您已了解tab栏的沉浸光感实现,现在需要在其他组件实现沉浸光感效果,您方便的话,麻烦您提供下以下信息: 请问您是在什么样的业务场景中使用该能力,麻烦您再详细描述一下相关业务场景,交互流程是怎样的,在哪一个环节遇到了问题?方便说明能力不满足可能带来的影响:什么时间用到?是否高频?有无三方库可以做到?若提供该能力,是否会造成大工作量返工?请您注意提供的内容不要包含您或第三方的非公开信息,如给您带来不便,敬请谅解。

更多关于HarmonyOS鸿蒙Next中请问工具栏的沉浸光感特效如何实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


为了组件的统一性,既然tab栏是沉浸光感,其他组件也应当是相同风格的,但是目前只有tab栏和navigation提供了对应文档,

开发者您好,您方便的话,麻烦您提供下具体期望实现的组件,比如您问题描述中的Row、button、column等。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

你好,其实我希望所有组件都可以提供这种样式,例如column、flex等,相当于background的等价属性,或者至少提供类似button、text、toolbox这些基础组件的沉浸光感api。

事实上,从QQ音乐的新版ui上来看,似乎相关的功能已经存在,但是好像没有公开给普通开发者,文档中只有tab和navigation,实在是太少了,

刚刚刷到的这个帖子就有解答,大概就是Stack加修改,

自己写的,可以尝试基于tabbar进行修改

在鸿蒙Next中,可通过ArkUIVisualEffect组件实现工具栏沉浸光感特效。设置backgroundBlurStyleBlurStyle.LightBlurStyle.Regular形成毛玻璃背景;再使用VisualEffectshadow属性添加动态阴影,结合gradient渐变模拟光感。动态效果可配合animateTotransition驱动。

在 HarmonyOS Next 中,工具栏(如底部操作栏)实现“沉浸光感”效果,本质就是施加系统级实时模糊背景。官方 Tab 栏的内置材质效果正是通过 backgroundBlur 接口实现的,你完全可以在自定义工具栏上复刻这一效果,无需魔改 TabBar。

核心做法:给工具栏容器添加 backgroundBlur 属性,指定与系统一致的模糊样式,如 BlurStyle.COMPONENT_THICK,并结合主题色模式。

示例代码(ArkUI):

@Entry
@Component
struct ImmersiveToolbar {
  build() {
    Column() {
      // 页面主体
      Text('页面内容').width('100%').height('100%')
    }
    .width('100%')
    .height('100%')
    .overlay(
      // 底部工具栏
      Row() {
        Button('首页')
        Button('搜索')
        Button('我的')
      }
      .width('100%')
      .height(56)
      .padding({ bottom: 16 }) // 适配安全区
      .backgroundBlur(BlurStyle.COMPONENT_THICK, {
        colorMode: ThemeColorMode.SYSTEM, // 跟随系统深浅色
        adaptiveColor: AdaptiveColor.DEFAULT,
        scale: 1.0
      })
      .position({ x: 0, y: '100%' }) // 贴底放置
      .translate({ y: '-100%' }),
      { align: Alignment.Bottom }
    )
  }
}

关键说明

  • BlurStyle.COMPONENT_THICK 提供与系统导航栏一致的强模糊 + 光感效果,也可按需改用 REGULARTHIN
  • colorMode: ThemeColorMode.SYSTEM 确保模糊层自动适配浅色/深色模式,呈现动态光感。
  • 使用 overlay + position 将工具栏定位在页面底部,并配合 translate 实现贴底显示,避免遮挡内容。

此方案直接利用系统模糊引擎,无需额外纹理或 Shader,即可得到与系统 Tab 栏完全一致的沉浸光感特效。

回到顶部