【每日学点鸿蒙知识】组件对象做参数、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)

相关推荐
anOnion31 分钟前
构建无障碍组件之Carousel Pattern
前端·html·交互设计
ssshooter39 分钟前
Tauri 2 iOS 开发避坑指南:文件保存、Dialog 和 Documents 目录的那些坑
前端·后端·ios
Можно1 小时前
深入理解 ES6 Proxy:与 Object.defineProperty 的全面对比
前端·javascript·vue.js
Birdy_x2 小时前
接口自动化项目实战(1):requests请求封装
开发语言·前端·python
天天向上10243 小时前
vue el-table实现拖拽排序
前端·javascript·vue.js
柳杉4 小时前
Three.js × Blender:从建模到 Web 3D 的完整工作流深度解析
前端·javascript·数据可视化
reembarkation5 小时前
vue3中使用howler播放音频列表
前端·vue.js·音视频
手握风云-5 小时前
基于 Java 的网页聊天室(三)
服务器·前端·数据库
weixin199701080165 小时前
《识货商品详情页前端性能优化实战》
前端·性能优化
Forever7_5 小时前
重磅!Vue3 手势工具正式发布!免费使用!
前端·前端框架·前端工程化