【每日学点HarmonyOS Next知识】获取组件尺寸、无埋点方案、海报组件、路由 ...

打印 上一主题 下一主题

主题 1006|帖子 1006|积分 3018

1、HarmonyOS 怎样获取某个组件的尺寸?

除了onAreaChange外,还可以使用componentUtils.getRectangleById(“组件ID”)来获取组件的大小信息,需要注意的是两者获取的单元不同,getRectangleById获取到的单元为px,onAreaChange获取的单元为vp;
参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-arkui-uicontext-V5#getrectanglebyid

2、HarmonyOS 无埋点方案?

参考以下链接中的埋点方案


  • https://developer.huawei.com/consumer/cn/forum/topic/0203905239627610146?fid=0101271690375130218
  • https://developer.huawei.com/consumer/cn/forum/topic/0201755572813140726?fid=0101587866109860105
3、HarmonyOS 怎样实现笔墨渐变色效果?

怎样实现笔墨渐变色效果
使用linearGradient与blendMode结合可以实现该效果;
参考demo:
  1. @Entry
  2. @Component
  3. struct GradientTest {
  4.   @State message: string = 'Hello World';
  5.   build() {
  6.     Row() {
  7.       Column() {
  8.         Row() {
  9.           Text(this.message)
  10.             .fontSize(50)
  11.             .fontWeight(FontWeight.Bold)
  12.             .blendMode(BlendMode.DST_IN, BlendApplyType.OFFSCREEN)
  13.         }
  14.         .linearGradient({
  15.           direction: GradientDirection.Right,
  16.           colors: [[0xff0000, 0.0], [0x0000ff, 0.3], [0xffff00, 1.0]]
  17.         })
  18.         .blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN)
  19.       }
  20.       .width('100%')
  21.     }
  22.     .height('100%')
  23.   }
  24. }
复制代码
4、HarmonyOS 生成海报的组件?

第三方库在线计划工具,具备海报计划和图片编辑功能,基于Canvas的开源版【稿定计划】。适用于多种场景,如海报生成、电商产品图制作、文章长图计划、视频/公众号封面编辑等。
https://gitee.com/dromara/yft-design
5、HarmonyOS Navigation使用体系路由表,页面无法接收到参数?

参考以下demo
  1. //index.ets
  2. @Builder
  3. routerMap(builderName: string, param: object) {
  4.   if (builderName === 'featureA') {
  5.     FeatureIndex(param);
  6.   }
  7. };
  8. aboutToAppear(): void {
  9.   this.entryHapRouter.pushPathByName( "featureA", "测试", true)
  10. }
  11. //FeatureIndex.ets
  12. @Builder
  13. export function FeatureIndex(value: object) {
  14.   NavDestination() {
  15.     Column() {
  16.       Text('Hello FeatureA Page')
  17.       Text(`传入的参数:${JSON.stringify(value)}`)
  18.         .margin(20)
  19.     }
  20.     .width('100%')
  21.     .height('100%')
  22.   }
  23.   .hideTitleBar(true)
  24. }
  25. //路由表的方式传递参数:
  26. //index.ets
  27. @Entry
  28. @Component
  29. struct NavigationExample {
  30.   //绑定 NavPathStack
  31.   @Provide('NavPathStack')pageInfo: NavPathStack = new NavPathStack()
  32.   build() {
  33.     Navigation(this.pageInfo) {
  34.       Column() {
  35.         Button('StartTest', { stateEffect: true, type: ButtonType.Capsule })
  36.           .width('80%')
  37.           .height(40)
  38.           .margin(20)
  39.           .onClick(() => {
  40.             this.pageInfo.pushPath({ name: 'pageOne',param:"测试参数" });
  41.           })
  42.       }
  43.     }.title('NavIndex')
  44.     .backgroundColor(Color.Orange)
  45.   }
  46. }
  47. //PageOne.ets 子页面绑定NavPathStack
  48. @Consume('NavPathStack') pageInfo: NavPathStack;
  49. aboutToAppear(): void {
  50.   this.message = this.pageInfo.getParamByIndex(0) as string
  51.   console.log(JSON.stringify(this.pageInfo));
  52. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表