关于布局的一些使用想法

布局这一块,我想使用最多的就是LinearLayout线性布局以及RelativeLayout相对布局了。AbsoluteLayout绝对布局很少用,我只是在初学的时候用了,而且还搞出笑话来了。老板布置的作业,我在我的G3上使用AbsoluteLayout布局,在我的手机上看上去很完美,谁知道面试的时候老板用的是G7,跑起来一看,整个UI都缩在左上角那一块了,老板还半开玩笑的说是不是我的审美有问题啊。

 

LinearLayout布局适合于从左往右顺序排列,或者从上往下顺序排列。RelativeLayout则适用于左右固定,或者上下固定,中间可以扩充满整个布局。在使用LinearLayout的过程中,我想layout_weight是需要重视的属性之一,这个属性可以很容易的进行控件的等比例布局。RelativeLayout的使用过程通常是把靠边的控件先定义,然后定义中间的控件是在前面定义的控件的左边还是右边还是上边下边等等。LinearLayout通常情况下是不能滚动的,如果需要滚动,则可以在LinearLayout的外面包一层ScrollView。

 

FrameLayout用的也比较多,FrameLayout主要是用于几个不同控件的显示,在写代码的时候,只需要对最上面的控件进行显示或者隐藏就行了,而不像别的布局,一个显示出来然后把另一个隐藏掉。

 

TableLayout感觉用的不是很多,用LinearLayout或者GridView就能够很好的实现TableLayout的效果。

 

在使用LinearLayout,FrameLayout的过程中,layout_gravity是需要重视的属性,这个属性可以设置控件是偏上还是偏下,是水平居中还是垂直居中。layout_gravity是布局内部控件相对于整个布局的重心,而gravity是设置控件内部的重心。

 

在布局的时候,尽可能的使用sp,dip等依赖设备的长度单位,这样在所有屏幕尺寸差不多大小,但是分辨率不一的机器上看上去效果都能够基本保持一致。如果是要实现某种特效,那就得针对各种分辨率新建文件夹如layout-320x480,layout-480x854分别放置布局文件。

 

很多人可能不是很清楚margin和padding之间的区别,按我的理解,margin是对外,padding则是对内。怎么说呢,margin是设置view本身和其他view之间的距离,而padding是设置包含在view内的子view到view的边界之间的距离。

你可能感兴趣的:(布局)