要脸Ability的开发,占了鸿蒙App开发的大部分工作,所以你需要多花点时间研究,研究。再次打开MainAbility.java文件,左手按住键盘上的Ctrl键,右手将鼠标移到Layout_ability_main上,鼠标单击之后,会打开一个ability_main.xml文件。
super.setUIContent(ResourceTable.Layout_ability_main);
从ability_main.xml文件在layout目录下,你应该能明白,它是一个专门用于布局的文件,其中DirectionalLayout为垂直方向的线性布局管理器,Text为文本控件,关于它们的详细介绍,后面都会说到,此刻,你大概了解一下就好。
<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:alignment="center"
ohos:orientation="vertical">
<Text
ohos:id="$+id:text_helloworld"
ohos:height="match_content"
ohos:width="match_content"
ohos:background_element="$graphic:background_ability_main"
ohos:layout_alignment="horizontal_center"
ohos:text="$string:mainability_HelloWorld"
ohos:text_size="40vp"
/>
</DirectionalLayout>
鸿蒙实现页面布局,有两种方法:一种是用上面的xml文件进行布局,接着在Java类中用setUIContent()加载,红线ResourceTable.Layout_ability_main由开发工具自动生成;还有一种方法就是通过Java代码实现。
在MainAbility.java类中用代码实现布局如下所示,为了不让你感觉到单调,我特意将文字改成了"你好,鸿蒙"。
package com.lc.hm.booking;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.components.DependentLayout.LayoutConfig;
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
DirectionalLayout myLayout = new DirectionalLayout(this);
// 设置布局宽高
myLayout.setWidth(LayoutConfig.MATCH_PARENT);
myLayout.setHeight(LayoutConfig.MATCH_PARENT);
myLayout.setAlignment(LayoutAlignment.CENTER);
// 创建一个文本
Text text = new Text(this);
text.setText("你好,鸿蒙");
text.setWidth(LayoutConfig.MATCH_PARENT);
text.setTextSize(100);
// 设置文本的布局
DirectionalLayout.LayoutConfig textConfig = new DirectionalLayout.LayoutConfig(LayoutConfig.MATCH_CONTENT, LayoutConfig.MATCH_CONTENT);
text.setLayoutConfig(textConfig);
myLayout.addComponent(text);
super.setUIContent(myLayout);
}
}
运行代码之后,效果如下,和用xml布局是一样的。

虽然可以用Java代码实现布局,但大家都不这样用,除了工作量大,还是不好维护和扩展的问题,所以建议你开发鸿蒙App,也用xml布局的方式。
学开发鸿蒙App,不是每个人都能找到这里的,恭喜你找到了老陈。一个当了10多年技术总监的老家伙,总爱在*今条头日**@老陈说编程上,分享Python、Java和App(Android、iOS和鸿蒙)方面的干货。关注我,你就赚翻了。
#APP##鸿蒙##Java##程序员##好平台好讲师#