上文档:
HarmonyOS提供了Ability和AbilitySlice两个基础类。有界面的Ability绑定了系统的Window进行UI展示,且具有生命周期。AbilitySlice主要用于承载Ability的具体逻辑实现和界面UI,是应用显示、运行和跳转的最小单元。AbilitySlice通过setUIContent()为界面设置布局。
组件需要进行组合,并添加到界面的布局中。在Java UI框架中,提供了两种编写布局的方式:
在代码中创建布局:用代码创建Component和ComponentContainer对象,为这些对象设置合适的布局参数和属性值,并将Component添加到ComponentContainer中,从而创建出完整界面。
在XML中声明UI布局:按层级结构来描述Component和ComponentContainer的关系,给组件节点设定合适的布局参数和属性值,代码中可直接加载生成此布局。
这一次为大家带来的就是“在代码中创建布局”。
涵盖核心知识点包括:(实战Demo源码地址:https://github.com/CoderMrYe/HarmonyStudy)
1、创建步骤:
(1)声明布局
DirectionalLayout directionalLayout = new DirectionalLayout(getContext());
(2)设置布局大小
directionalLayout.setWidth(ComponentContainer.LayoutConfig.MATCH_PARENT);
directionalLayout.setHeight(ComponentContainer.LayoutConfig.MATCH_PARENT);
(3)设置布局属性及ID(ID视需要设置即可)
directionalLayout.setOrientation(Component.VERTICAL);
directionalLayout.setPadding(32, 32, 32, 32);
(4)组件创建
Text text = new Text(getContext()); //组件初始化
text.setText("???");//组件属性设置
text.setTextSize(50);
text.setId(100);
(5)为组件添加对应布局的布局属性
DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig(DirectionalLayout.LayoutConfig.MATCH_CONTENT,
DirectionalLayout.LayoutConfig.MATCH_CONTENT);
layoutConfig.alignment = LayoutAlignment.HORIZONTAL_CENTER;
text.setLayoutConfig(layoutConfig);
(6)将组件添加到布局中(多个组件,重复步骤456)
directionalLayout.addComponent(text);
(7)将布局作为根布局添加到视图树中
super.setUIContent(directionalLayout);
网友评论