一、LinearLayout 线性布局
android:orientation属性 将子View设置为垂直或者水平方向的布局
android:layout_width 和android:layout_height用于指定他们的尺寸
1. 设置排列方式
android:orientation="vertical"; 垂直排列
android:orientation="horizontal"; 水平排列
2. 对其方式
layout_gravity是LinearLayout子元素特有的属性,该属性用于设置控件相对于容器的对齐方式,
可选项有top,bottom,left,right,center_vertical,center_horizontal,center,fill等
android:layout_gravity="center_vertical" 水平居中
3. 权重
LinearLayout布局中layout_weight属性用来分配子View在LinearLayout中所占的空间,
只有LinearLayout包裹的View才有这个属性
二、FrameLayout 框架布局
FrameLayout布局直接在屏幕上开辟出一块空白区域。向其中添加控件,所有控件都会置于这块区域的左上角。
可以为组件添加layout_gravity属性指定对齐方式
三、TableLayout 表格布局
此布局为表格布局,适用于N行N列的布局格式。一个TableLayout由多TableRow组成,一个TableRow就代表TableLayout中的一行。TableRow是LinearLayout的子类,它的android:orientation属性值恒为horizontal,并且它的android:layout_width和android:layout_height属性值恒为MATCH_PARENT和WRAP_CONTENT。所以它的子元素都是横向排列,并且宽高一致的。这样的设计使得每个TableRow里的子元素都相当于表格中的单元格一样。在TableRow中,单元格可以为空,但是不能跨列。
四、RelativeLayout 相对布局
1. RelativeLayout 布局的控件位置是按照相对位置计算的,一个控件需要依赖于另外一个控件或者依赖父控件
第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
2. 第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
3. 第三类:属性值为具体的像素值,如30dp
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
五、ConstraintLayout 各个含义
1.常用属性
layout_constraintTop_toTopOf // 期望视图的顶部与视图顶部对齐。
layout_constraintTop_toBottomOf // 期望视图的顶部与视图的底部对齐。
layout_constraintBottom_toTopOf // 期望视图的底部与视图的顶部对齐
layout_constraintBottom_toBottomOf // 期望视图的底部与视图的底部对齐
layout_constraintLeft_toTopOf // 期望视图的左侧与视图的顶部对齐。
layout_constraintLeft_toBottomOf // 期望视图的左侧与视图的底部对齐。
layout_constraintLeft_toLeftOf / layout_constraintStart_toStartOf // 期望视图的左侧与视图的左侧对齐。
layout_constraintLeft_toRightOf / layout_constraintStart_toEndOf // 期望视图的左侧有视图的右侧对齐。
layout_constraintRight_toTopOf //期望视图的右侧与视图的顶部对齐。
layout_constraintRight_toBottomOf //期望视图的右侧与视图的底部对齐。
layout_constraintRight_toLeftOf / layout_constraintEnd_toStartOf // 期望视图的右侧与视图的左侧对齐。
layout_constraintRight_toRightOf /layout_constraintEnd_toEndOf // 期望视图的右侧与视图的右侧对齐
2.控件局中
1.上下局中
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
2.左右局中
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
3.控件在两个控件之间局中
控件之间局中.png <TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="需要移动的视图需要移动的视图需要移动的视图需要移动的视图需要移动的视图需要移动的视图"
app:layout_constraintLeft_toRightOf="@+id/imageView1"
app:layout_constraintRight_toLeftOf="@+id/imageView2"
app:layout_constraintTop_toTopOf="@+id/imageView1" />
网友评论