本文讲述在Doric中的布局方式与布局容器
基础属性
本节内容列举在View
中定义的基础的属性及其含义
LayoutConfig
在View
的属性中,关于布局的属性最关键的就是layoutConfig
这个属性。
它的定义如下:
export interface LayoutConfig { |
大家可以注意到这个属性默认是undefined
的。如果不设置,其内容相当于 layoutConfig().just()
。
但是在一般使用声明式布局,如text
,vlayout
,hlayout
等方式进行布局时,默认已经设置了layoutConfig为layoutConfig().fit()
layoutConfig()
这是一个辅助方法,用于链式调用最终生成您想要的LayoutConfig
属性。
layoutConfig: layoutConfig().just(), |
当然您也可以不使用这个方法,直接声明LayoutConfig
对象。
layoutConfig: { |
定义如下:
// 宽与高都设置为FIT |
LayoutSpec
用于描述宽或高两个维度的确定方式。
LayoutSpec.JUST
JUST
表示值为固定值,即由View的width
或height
属性来定义宽或高的值。LayoutSpec.FIT
FIT
表示其当前维度的值由其内容撑开。
在Text
控件,由其文本内容决定
在Image
控件,由其图像尺寸决定。
在VLayout
,HLayout
,Stack
中,由其子视图内容大小决定。LayoutSpec.MOST
MOST
表示其当前维度的值会最大限度撑开,直到其占满父容器的剩余空间。
widthSpec
与heightSpec
可分别设置,从而达到您想要的效果。
Margin
定义控件相对对于其同级视图或父视图的边距。
{ |
Alignment
定义了控件相对于父视图的对齐方式。
请注意
在VLayout
中仅能定义水平方向的对齐方式,在HLayout
中仅能定义垂直方向的对齐方式
Weight
布局权重,仅在VLayout
和HLayout
中生效。
其作用方式为,当所有子视图布局完成后,如果父视图还有剩余空间,则按子视图所定义的weight
比例分配。不定义默认为0
。
Width & Height
直接设置一个控件的宽或者高。
view.width = 100 |
请注意width
属性生效条件为layoutConfig
属性为undeifned
或其widthSpec
值为LayoutSpec.JUST
height
属性生效条件为layoutConfig
属性为undeifned
或其heightSpec
值为LayoutSpec.JUST
Padding
内边距。即控件内子视图或其内容相对于控件的间距。
其格式定义为
{ |
Layout容器
在Doric中,定义了三种父视图来进行布局
Stack
Stack
是最基本的父视图,子视图按添加顺序覆盖其上。
此时子视图的x
,y
坐标发挥作用,坐标系原点正是父视图的左上角。
锚点坐标
对于Stack
的子视图来说,仅仅通过x
,y
进行布局略显不便。
如果其子视图宽或高为JUST
时,可以通过锚点进行快捷的坐标设置。
left
right
top
bottom
centerX
centerY
VLayout
VLayout
是垂直线性布局,子视图从上向下进行布局。
Gravity
其gravity
属性可控制子视图个体在水平方向上的对齐方式和整体在垂直方向上的对齐方式
子视图个体可通过设置其Aligment
覆盖改变其水平方向上的对齐方式。
Space
定义子视图之间的间距
HLayout
HLayout
是水平线性布局,子视图从左向右进行布局。
Gravity
其gravity
属性可控制子视图个体在垂直方向上的对齐方式和整体在水平方向上的对齐方式
子视图个体可通过设置其Aligment
覆盖改变其垂直方向上的对齐方式。
Space
定义子视图之间的间距