HarmonyOS windows级别页面设置

想要设置全局的水印功能,但是又不能每个页面去添加,是否有EntryAbility里边windowStage的相关接口的说明,想在EntryAbility里添加这个全局的配置,或者能否提供其他的全局处理方式。

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

目前没有统一处理全局水印的方式,可以把水印样式定义成公共组件,可参考如下代码:

1、定义全局的水印组件:

@Entry
@Component
export struct WaterMarkComponent {
  build() {
    Column({ space: 10 }) {
      Text(“TestMark”)
      .fontSize(50)
        .fontColor(Color.Gray)
    }
    .width(‘100%’)
    .height(‘100%’)
    .backgroundColor("#51aaaaaa")
      .justifyContent(FlexAlign.Center)
  }
}
@Builder
export function createWaterMark() {
  WaterMarkComponent()
    .hitTestBehavior(HitTestMode.None) // 必须设置其触摸测试为None或Transparent,否则正常组件无法响应事件
}

2、基于水印组件定义一个export的custombuilder,以供全局使用:

@Builder
export function createWaterMark() {
  WaterMarkComponent()
    .hitTestBehavior(HitTestMode.None) // 必须设置其触摸测试为None或Transparent,否则正常组件无法响应事件
}

3、在需要加水印页面的根节点上添加.overlay属性,并使用上述的custombuilder:

import { promptAction } from ‘@kit.ArkUI’
import { createWaterMark } from ‘…/components/watermark’;

@Entry
@Component
struct TestMarkDemo {
  build() {
    Row() {
      Column() {
        Text(“click”)
        .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => { // 测试对正常事件的响应
            promptAction.showToast({ message: “test” })
          })
      }
      .width(‘100%’)
    }
    .height(‘100%’)
    .overlay(createWaterMark())
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 如何对page页面设置透明
592浏览 • 1回复 待解决
HarmonyOS windows级别添加水印
50浏览 • 1回复 待解决
如何将页面设置为深色模式
2300浏览 • 1回复 待解决
数据库如何设置加密级别
481浏览 • 2回复 待解决
HarmonyOS windows系统下编译失败
363浏览 • 0回复 待解决
windows taskkill强制关闭nginx
5889浏览 • 0回复 待解决
windows中安装hpm出错
7539浏览 • 1回复 待解决
HarmonyOS 如何设置Entry页面是透明页面
563浏览 • 1回复 待解决