【每日学点鸿蒙知识】组件对象做参数、2D在子线程中使用、Tabs组件联动、Web组件获取焦点、Text加载藏文

1、HarmonyOS 如果将component组件对象当作参数参数传入到一个类中,并在类中修改component中元素是否显示?

目前的规格是组件不能作为参数进行传递的,对于自定义组件可以通过声明参数为builderParam,传递自定义builder。

2、HarmonyOS CanvasRenderingContext2D 支持在 TaskPool中使用吗?

布绘制和UI相关,不适合在子线程中操作,如果 的绘制涉及大比较大的数据计算、处理, 可以在task中处理数据,处理完返回主线程,再进行绘制,并且Canvas并不在官方验证的线程安全的模块之列,所以建议 不要在子线程中直接绘制。

线程安全模块参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/multi-thread-concurrency-overview-V5

3、HarmonyOS bindSheet内部使用Tabs组件,滚动事件无法联动?

布局问题, Tabt和list布局没有叠加在一起,只有按顶部的tabContent下拉才有效,在外面加一层布局包裹就可以了,代码如下

@Builder
sheetBuilder() {
  Column() {
    Tabs() {
      ForEach([1, 2], (value: number) => {
        TabContent() {
          this.listBuilder()
        }.tabBar(value.toString())
      })
    }
  }
}
4、HarmonyOS Web组件中加载的网页如何设置默认不获取焦点?

参考以下api:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#ZH-CN_TOPIC_0000001930676933__oninactive

requestFocus(): void 使当前web页面获取焦点。

示例代码如下:

// xxx.ets
import { webview } from '@kit.ArkWeb';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      Button('requestFocus')
        .onClick(() => {
          try {
            this.controller.requestFocus();
          } catch (error) {
            console.error(`ErrorCode: ${(error as BusinessError).code},  Message: ${(error as BusinessError).message}`);
          }
        });
      Web({ src: 'www.example.com', controller: this.controller })
    }
  }
}
5、HarmonyOS Text加载藏文时,显示异常?

使用Text加载超过单行少数民族文字时,设置 .maxLines(1)属性,导致文字前有大段空白,设置.maxLines(1)和.textOverflow({overflow: TextOverflow.Ellipsis}),文字前有大段空白,省略号在前面。

想要文字在控件居中可设置textAlign(TextAlign.Center),解决文字省略号提前导致前面有一大段空白问题可设置wordBreak(WordBreak.BREAK_ALL)

相关推荐
Jet_closer_burning10 分钟前
Vue2 和 Vue3 的响应式原理对比
前端·javascript·vue.js·html
xing251638 分钟前
pytest-html
前端·html·pytest
努力的白熊嗨1 小时前
一文带你搞懂前端大文件上传
前端·javascript
茂茂在长安1 小时前
Linux 命令大全完整版(11)
java·linux·运维·服务器·前端·centos
知识分享小能手1 小时前
Html5学习教程,从入门到精通,HTML5 简介语法知识点及案例代码(1)
开发语言·前端·javascript·学习·前端框架·html·html5
IT、木易1 小时前
大白话React第二章深入理解阶段
前端·javascript·react.js
晚安7201 小时前
Ajax相关
前端·javascript·ajax
图书馆钉子户2 小时前
怎么使用ajax实现局部刷新
前端·ajax·okhttp
bin91532 小时前
DeepSeek 助力 Vue 开发:打造丝滑的单选按钮(Radio Button)
前端·javascript·vue.js·ecmascript·deepseek
鸿蒙开天组●2 小时前
鸿蒙实战篇-解决报错提示“code:9568305 error: dependent module does not exist”
华为·编辑器·harmonyos·鸿蒙