【Harmonyos】22-04-14 在 Java 中使用布局的属性

今天在写鸿蒙应用时遇到的一个问题,经过我的长时间认真思考,最终在华为的开发者论坛上找到了解决方案🤣🤣

事情的经过

在写鸿蒙应用时,因为要用到很多重重复复的布局,所以为了方便打算使用 Java 来代替 XML ,但是发现一个问题,居然有一些属性在 Java 中没有找到

解决问题

于是我就在华为开发者论坛里找到了一篇名为 如何在代码中给DirectionalLayout配置权重weight 的帖子,然后我尝试了一下,发现代码不报错,但是运行会报错

  • 代码
1
2
3
DirectionalLayout.LayoutConfig config = (DirectionalLayout.LayoutConfig) text.getLayoutConfig();
config.weight = 1;
text.setLayoutConfig(config);
  • 错误信息
1
[phone][Engine Log] SEVERE java.lang.ClassCastException: class ohos.agp.components.ComponentContainer$LayoutConfig cannot be cast to class ohos.agp.components.DirectionalLayout$LayoutConfig (ohos.agp.components.ComponentContainer$LayoutConfig and ohos.agp.components.DirectionalLayout$LayoutConfig are in unnamed module of loader 'app')

于是我发布了一篇求助帖 求助:怎么通过 Java 代码给组件设置 weight

发现原来是我代码的顺序错了

参考自以下内容

华为开发者论坛 https://developer.huawei.com/consumer/cn/forum/topic/0201624372344830169?fid=0101587866109860105&pid=0303853338792740130