本文统一采用以下的格式记述
- xml属性
作用
相关方法(可能没写)
说明
LinearLayout线性布局
LinearLayout常用的方法
-
baselineAligned
设置基线对齐
.setBaselineAligned(boolean)
默认:true
用于布局管理器的子元素基线对齐
当设置为false时LinerLayout就不需要花时间去计算对齐操作了,修改掉之后就可以提高性能
divider
设置分割线
.setDividerDrawable()
默认没有分割线
相关属性:设置分割线,分割线位置(none(无),begining(开始),end(结束),middle(每两个组件间)),内边距
android:divider="@drawable/line_shape"
android:showDividers="middle"
android:dividerPadding="10dp"
-
gravity
设置对齐方式
.setGravity(int)
一个属性可以包含多个值,需用“|”分开
- orientation
排列方式
.setOrientation(int)
默认设置是vertical(垂直布局)
可以设置horizontal(水平)改为水平排列
LinearLayout子元素常用的方法
layout_gravity
设置对齐方式
和上面的gravity差不多属性参照上面-
layout_weight
设置权重
FrameLayout帧布局
FrameLayout是最简单的1个布局对象。它被定制为你屏幕上的1个空白备用区域,以后你可以在其中填充1个单1对象—比如,1张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的1个子元素指定1个位置。后1个子元素将会直接在前1个子元素之上进行覆盖填充,把它们部分或全部挡住(除非后1个子元素是透明的)。
该布局继承了ViewGrup
其间所有子组件都根据gravity进行对齐
FrameLayout常用的方法
- foregroundGravity
定义前景图像的gravity
AbsoluteLayout绝对布局
emmmm说是几大布局实际上他已经被废弃了
】
所有的子元素使用android:layout_x=""和android:layout_y=""控制位置,因为安卓设备的差异化很少使用这个布局
立碑。。。。。。
ConstraintLayout约束布局(相对布局)
说完绝对就说说相对,这个应该是最常用的布局了
该布局的每个组件都按照上下左右四个方向进行约束
约束即可基于父容器也可以基于子容器,
android:layout_marginTop="10pt"
app:layout_constraintTop_toTopOf="@+id/TextView1"
比如我们经常会见到这样的设置
这样的设置第一行是距离相对容器的上端10pt
第二行是该组件上端和相对组件TextView1上端对齐
layout_constraintBaseline_toBaselineOf
我们不难发现还有一个这个属性他的意思则是文本对齐
写到此处啊我突然发现一个写的贼好的文章
https://www.jianshu.com/p/17ec9bd6ca8a
最后一个网格布局
https://www.runoob.com/w3cnote/android-tutorial-tablelayout.html