线性布局LinearLayout-横着或者竖着按顺序排列的布局
新建工程,在layout下新建一个layout文件,如图操作
LinearLayout的基础属性如下表格,先简单了解一下,接下来逐一讲解
属性 | 值 | 说明 |
orientation | 1.vertical:垂直排列 | 也就是这个线性布局到底是水平方向逐个排列还是垂直方向逐个排列 |
layout_width | 1.match_parent:填充父容器的剩余空间 | layout_width和layout_height是android中控件的必要属性,规定了控件的宽度和高度,这个两个属性的值可以是指定的值,也可以根据内容自适应,还可以填充整个剩余空间 |
background | #ff0000 红色 | 填充背景色 |
gravity | 1.center:所有子视图相对于父容器居中显示 | 决定子控件相对该父容器的位置 |
layout_gravity | 1.center:该容器相对于它的父容器居中显示 | 决定该容器相对它的父容器的位置 |
weight | 按比例分配父容器剩余的宽度或高度 |
看这段代码 我们写了四个按钮文件 layout_width layout_height是必须有的属性
我们可以看到这四个按钮是从上到下垂直排列的,这是因为android:orientation="vertical"设置了vertical
如果你觉得效果不明显 我们把按钮宽度设置一下,这样就清晰了
接下来我们来设置为水平排列,android:orientation="horizontal"
看图,为水平排列
接下来学习背景颜色设置android:background="@color/purple_200" 语法是这么写的,颜色在@color/后面设置,也可以使用#xxxxxx十六进制的方式写,分别如图所示
在高版本中 对于button按钮背景颜色的设置就不能使用background了,应该使用backgroundTink来设置
如图所示
接下来讲gravity决定子控件相对该父容器的位置,常见三个属性
话不多说走代码
第一个android:gravity="center_horizontal":所有子容器的横向方向上相对父容器居中显示
第二个android:gravity="center_vertical":所有子视图的纵向方向上相对父容器居中显示
第三个android:gravity="center":所有子视图相对于父容器居中显示
接下来讲layout_gravity首先先把父组件的android:gravity="center"去掉,这会会影响效果,走代码
我们给每个按钮都加了android:layout_gravity="center_horizontal",这样都处于居中位置
接下里我们调节其中一个属性为android:layout_gravity="center_vertical",我们发现 为什么毫无变化呢,按道理来说,应该在垂直方向居中鸭,为什么没有变呢?请思考一下
如果android:gravity和layout_gravity的方向一致就会失效
是因为我们的父控件android:orientation="vertical"设置了vertical,所以,在垂直方向都需要按照顺序来,所以没有改变,我们将android:orientation="horizontal"修改为水平,这样就可以看到,android:layout_gravity="center_vertical"属性生效了,相反的,其他属性就无效了,我们需要在特定的情况使用这些属性
我在学习的过程中发现,实践才是真理,这些代码一定要动手敲一遍,这样才能更加深刻的记住
接下来介绍最后一个属性 weight:按比例分配父容器剩余的宽度或高度
当给一个控件设置weight的时候,这个控件的width就是无效的,所以给width设置为0
减去原来设置的长度剩下的长度按照比例分配
如图所示,这样是否就很好理解了呢
如果orientation是水平方向的,那么子控件的layout_width可以使用weight等比分配,layout_height则不行
如果orientation是垂直方向的,那么子控件的layout_height可以使用height等比分配,layout_weight则不行
这里就不演示了