最近在弄Android的东西。这类文档用来记录一些自己的体会。、
这篇是讲Android的布局。只讲我自己常用的两种布局:线性布局和相对布局。这两种布局很常见。一般一个layout 都是这两种结合使用。下面是自己对这两种布局的体会。
相对布局:
这个布局方式主要是学习“相对”这个词。我对这个布局掌握的不是很多。不过感觉挺好用的。用好相对布局就是要用户控件之间的相对关系。
在相对布局中有很多属性是通过控件之间的相对关系来确定的。
比如:android:layout_below="@+id/idName"
这个layout_below就指定该控件位于哪个控件下面。(需要注意,指定的id必须在前面出现过,否则会找不到id)这个下面不是“直接下面”,而是“下一行”。
再比如:
android:layout_alignLeft="@+id/idName" android:layout_alignStart="@+id/idName"
这两个属性一般都是同时出现的。它指明该控件左边缘与哪个控件左边缘对齐。
如上面的图片,如果输入框左边的提示文字长度不一致,就很容易导致右边的输入框左边不对齐。(用固定的距离单位去约束“对齐”是不理智的。)这个时候我们用相对布局中的上面的属性就可以设置左对齐,同理,也可以用类似属性(如下)实现右对齐:
android:layout_alignRight="@+id/idName" android:layout_alignEnd="@+id/idName"
相对布局还有很多属性,都是用别的控件来控制自己的位置。总之,相对布局就是要利用好和别的控件的相对位置,利用别的控件来约束自己。(不要轻易使用固定的距离约束自己的位置,这样的布局对屏幕大小的适应性很差)
线性布局:
线性布局的优势是在于“条理性”。
它的控件就是一个一个的排列好的,所以设计界面的时候,很容易从外到内的设计布局。线性布局有两个方向:横向和纵向。用orientation属性进行设置。
上次忘记介绍在线性布局中一个很重要的属性了。现在补上。
android:layout_weight
比重设置。这个属性就是设定该控件占父控件多少比重,如果是横向布局,那么就是指定宽度占多少,否则就是指定高度。一般来说,如果设置了android:layout_weight
该属性,那么指定的宽度(或者高度)就是按照比例进行分配,然后 android:layout_width
(或者android:layout_height
)设置为0个单位。这是习惯养成。注意:比重计算方式是在该夫布局之下,所有设置了android:layout_weight
的控件的值之和记为总份数,然后根据每个控件的该属性值计算得出自己的值。
用线性布局进行设计的时候需要设计好界面的“方块”。因为,线性布局就是像切豆腐一样,把屏幕分成好几块,然后每一块又分成好几块。就这样一直切分。
这个属性学起来简单,属性简单。用orientation属性控制好布局的方向,然后将控件排列好放进去。需要间隙就margin或者加一个不显示的框。
线性布局中,为了设计出更多的布局样式。嵌套会非常多。线性布局嵌套线性布局很常见。因此,在动手之前,一定要将“豆腐切好”,这样就不容易出错。而且,写线性布局条理性也会更强。
最后,建议这两种结合使用。因为相对布局的“灵活”和线性布局的“死板”恰好互补,这个两个布局结合在一起也的确十分方便。