Android 四大布局总结

1.LinearLayout

      这个线性布局大家都不陌生,只是这里面会有一些误区。

    如果LinearLayout的排列方向是horizontal,内部的控件就绝对不能将宽度指定为match_parent,因为这样,一个控件就会将水平方向占满,其他的控件就没法放了,vertical亦如此。

     android:layout_gravity属性和android:gravity的区别。这个估计好多人都没弄明白过,我这里解释一下。

      android:layout_gravity用于指定控件在布局中的对齐方式,而android:gravity用于指定文字在控件中的对齐方式,但是在线性布局中,如果方向是horizontal,那么只有垂直方向的对齐方式才会生效,因为水平方向上的长度是不固定的,没添加一个控件,水平方向上的长度会改变,所以无法指定该方向上的对齐方式,vertical相反。

     线性布局中的android:layout_weight属性,如果你使用了,那么控件的宽度将不再由android:layout_width来决定, 把width设置为0dp是一种比较规范的写法。

    我们还可以将一个控件的weight属性设置为1,一个不设,而把宽度设置为wrap_content,那么第二个控件的宽度则会按照wrap_content来计算,而第一个控件会占满屏幕所有的剩余空间。

2.相对布局Relativelayout

    这是一个常用的布局,可以通过相对定位的方式让控件出现在布局的任何位置,有很多属性供其选择,也很容易掌握,不再赘述。

3.帧布局FrameLayout

    这个比较简单,没有方便的定位方式,所有的控件都默认摆放在布局的左上角。不是很常用。

 4,百分比布局

    我今天主要总结的就是这个布局,我12年开始学习android的时候,还没有这个布局。这个百分比布局只为Framelayout和Relativelayout进行了功能扩展,提供了PercentFrameLayout和PercentRelativeLayout这两个全新的布局。

      如何使用?

      我们需要打开app目录下的build.gradle加入布局库的依赖:compile  'com.android.support:percent:24.2.1'

      我们写一个布局文件

      

 
    
 运行一下,你就发现这个Button的宽高各站屏幕的50%,不过PercentFrameLayout还是会继承FrameLayout的特性。

 当然还有绝对布局AbsoluteLayout和TableLayout,这些项目中很少用到,就不讲了。

你可能感兴趣的:(应用开发)