赞
踩
组件
是绘制在屏幕上的一个对象,用户能与之交互。布局
是一个用于容纳其他组件和布局对象的容器。提供内容显示,是界面中所有组件的基类,开发者可以给Component设置事件处理回调来创建一个可交互的组件。组件一般直接继承Component或它的子类,如Text、Image等。
作为容器容纳Component或ComponentContainer对象,并对它们进行布局。
每种布局都根据自身特点提供LayoutConfig供子Component设定布局属性和参数,通过指定布局属性可以对子Component在布局中的显示效果进行约束。布局把Component和ComponentContainer以树状的层级结构进行组织,这样的一个布局就称为组件树。
public class ExampleAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { … // 声明布局 DirectionalLayout directionalLayout = new DirectionalLayout(getContext()); // 设置布局大小 directionalLayout.setWidth(…); // 设置布局属性 directionalLayout.setOrientation(…); // 添加一个Button Button button = new Button(getContext()); // 为组件添加对应布局的布局属性 DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig(…); button.setLayoutConfig(layoutConfig); … // 在组件中增加对点击事件的检测 button.setClickedListener(…); directionalLayout.addComponent(button); // 将布局作为根布局添加到视图树中 super.setUIContent(directionalLayout); } }
Java UI框架提供了一些标准布局功能的容器,继承自ComponentContainer,一般以 ”Layout” 结尾。
vertical
。不会自动换行
,其子组件会按照设定的方向依次排列,若超过布局本身的大小,超出布局大小的部分将不会被显示。– end_of:将起始边与另一个子组件的结束边对齐,效果如下图所示
– below:将上边缘与另一个子组件的下边缘对齐,效果如下图所示
– above、start_of、left_of、right_of 等参数可分别实现类似的布局
视图以层叠的方式显示,相当于安卓的帧式布局(FrameLayout)
StackLayout直接在屏幕上开辟出一块空白的区域,添加到这个布局中的视图都是以层叠的方式显示,而它会把这些视图默认放到这块区域的左上角,第一个添加到布局中的视图显示在最底层,最后一个被放在最顶层。上一层的视图会覆盖下一层的视图。效果如下图所示:
使用layout_alignment属性可以指定组件在布局中的相对位置
– top、bottom、left、right四种,代表上下左右
– horizontal_center、vertical_center、center三种居中方式
使用moveChildToFront(Component)方法可以将子视图从底层移到顶层显示,效果如调图所示:
<Text
ohos:id="$+id:text"
ohos:width="match_content"
ohos:height="match_content"
ohos:text="Text"/>
<TextField
ohos:id="$+id:text_field"
ohos:height="40vp"
ohos:width="200vp"
ohos:left_padding="20vp"
/>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。