LinearLayout线性布局
在安卓开发中!经常要设计页面,所以在安卓开发中提供了LinearLayout(线性布局),RelativeLayout(相对布局),FrameLayout( 重叠布局),TableLayout (表格布局 )GridLayout (网格布局),AbsoluteLayout(绝对布局)这六大布局,其中LinearLayout线性布局也是常用于布局页面的!
LinearLayout概念:
指子控件以水平或垂直方式排列,其中排列方式是指这个布局中的所有控件在线性方向上依次排列。
1.width和height属性:
作用:设置布局的宽高大小来确定布局空间大小!
android:layout_width:布局的宽度,用wrap_content表示组件的实际宽度,match_parent表示填充父容器
android:layout_height:布局的长度,用wrap_content表示组件的实际长度,match_parent表示填充父容器
2.orientation属性:
作用:设置线性布局的布局方向,可以在一个方向垂直或者水平分布所有子项!
android:orientation:布局中的排列方式:
有两种方式:horizontal水平,vertical竖直,如果不设置则默认水平显示
当 android:orientation="vertical" 时,只有水平方向的设置才起作用,垂直方向的设置不起作用.即:left,right,center_horizontal 是生效的.
当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用.即:top,bottom,center_vertical 是生效的
例子:
3.id属性:
作用:设置id属性可方便找到该控件!
android:id:为该组件添加一个资源id,即标识符,可以通过id来找到该布局或者控件。
例子:
4.gravity属性:
作用:设置布局中的多个布局或控件之间的对齐!
android:layout_gravity是本(子)元素相对于父元素的对齐方式设置在子元素上.
android:gravity="bottom|right"是本(父)元素所有子元素的对齐方式,设置在父元素上,多个值用 | 隔开.
其属性值分别为:
center(整体居中)、center_vertical(垂直居中)、center_horizontal(水平居中)、
right(居右)、left(居左)、bottom(底部)、top(顶部)等一些属性值;
例子:
5.background属性:
作用:设置布局中的为背景图片或者背景颜色,甚至自定义样式!
android:background:为该组件添加一个背景图片或者背景颜色,颜色常以六位的十六进制表示
例子:
6.padding 和 margin属性:
作用:设置布局的内外边距!
android:layout_margin :外边距,布局或控件距离外部元素的边距
android:layout_padding :内边距,布局或控件距离内部元素的边距
例子:
7.weight属性:
作用:设置布局的空闲空间的占据权重来决定布局显示的大小!
android:layout_weight:权重,除了被显示占据的空间以外的的空间,然后根据权重的大小来分配空间,使用权重通常会把分配该权重方向的宽度设置为0dp,如果未设置0dp,则该控件会占据指定的宽度,然后再加上根据权重来分配的空间,
设置weiget属性的前提:
子元素设置了android:layout_width = "match_parent" 属性 ( 水平方向 )
或子元素设置了 android:layout_height = "match_parent"属性( 垂直方向).
如果某个子元素的android:layout_width = "0dp"或android:layout_height="0dp" ,
则 android:layout_weight的设置值 对该方向上空间的分配则刚好相反。
Weight是分割闲置空间,主要分为以下两种:
水平布局 分割宽度
垂直布局 分割的高度
注意:分割的时候 指定的高度或者宽度时不能用fill_parent/match_parent
例子: