线性布局(LinearLayout)???——》整个Android布局中的控件摆放方式是以线性的方式摆放的;
LinearLayout分类???——》水平线性布局、垂直线性布局;
那如何代码实现分类???——》
水平线性布局???——》android:orientation="horizontal"
垂直线性布局???——》android:orientation="vertical"
直接决定元素的布局和位置的常见参数???——》
android:layout_gravity ???——》设置布局管理器内组件的对齐方式;子元素在父元素的对齐方式,设置在子元素上;
- 当 android:orientation="vertical" 时???——》只有水平方向的设置才起作用,垂直方向的设置不起作用;
- 注意:left,right,center_horizontal 是生效的;
- 当 android:orientation="horizontal" 时???——》只有垂直方向的设置才起作用,水平方向的设置不起作用;
- 注意:top,bottom,center_vertical 是生效的;
注意:
- 同时指定多种对其方式的组合,中间用“|”连接;
- 关键字???——》fill_vertical(垂直方向填充)、 clip_vertical(垂直方向裁剪) 、 center_horizontal(水平方向居中)、 fill_horizontal(水平方向填充) 、center(垂直与水平方向都居中) 、 fill (填充) 、 clip_horizontal(水平方向裁剪)
- android:ignoreGravity:???——》为哪个组件设置了这个属性的话,那么该组件不受gravity属性的影响;
- android:gravity???——》对view 内容的位置限定;
设置布局里面所有组件的对其方式???——》
android:padding="?dp"???——》设置组件内部元素间的边距;
- android:padding :指定控件的四周的内部留出一定的边距;
- android:paddingLeft: 指定控件的左边的内部留出一定的边距;
- android:paddingTop: 指定控件的上边的内部留出一定的边距;
- android:paddingRight: 指定控件的右边的内部留出一定的边距;
- android:paddingBottom: 指定控件的下边的内部留出一定的边距;
注意:设置在父元素上;
android:layout_margin="?dp"???——》设置组件与父容器(通常是布局)的边距;
- android:layout_margin: 指定控件的四周的外部留出一定的边距;
- android:layout_marginLeft: 指定控件的左边的外部留出一定的边距;
- android:layout_marginTop: 指定控件的上边的外部留出一定的边距;
- android:layout_marginRight: 指定控件的右边的外部留出一定的边距;
- android:layout_marginBottom: 指定控件的下边的外部留出一定的边距;
注意:设置在子元素上;
根据父容器来定位???——》
注意:想位于哪,哪个属性就设置为true;
- 左对齐???——》android:layout_alighParentLeft
- 右对齐???——》android:layout_alighParentRight
- 顶端对齐???——》android:layout_alighParentTop
- 底部对齐???——》android:layout_alighParentBottom
- 水平居中???——》android:layout_centerHorizontal
- 垂直居中???——》android:layout_centerVertical
- 中央位置???——》android:layout_centerInParent
根据兄弟组件来定位
注意:右面的属性值为兄弟组件的id;
- 左边:android:layout_toLeftOf
- 右边:android:layout_toRightOf
- 上方:android:layout_above
- 下方:android:layout_below
- 对齐上边界:android:layout_alignTop
- 对齐下边界:android:layout_alignBottom
- 对齐左边界:android:layout_alignLeft
- 对齐右边界:android:layout_alignRight
设置组件权重
android:layout_weight ="?" ???——》指定该子元素在 LinearLayout 中所占的权重;(控制各个控件在布局中的相对大小)
权重最基本的用法???——》根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域;
特殊情况???——》
- 首先计算数值,所有控件加起来后可能超过屏幕大小了;这个时候剩余值就应该是负的;
- 此时按权重分配,权重大的分得值比较大;
- 但是负的,这个时候加上原来的值,反而变小;
权重有一个很有用的特点???——》在一些特殊应用场景;比如:有两个控件,一个设置了权重,一个不设置权重???——》设置权重的控件会后加载渲染;
注意:
- layout_weight为0???——》控件会按原大小显示,不会被拉伸;
- layout_weight属性值大于0的控件???——》系统将会减去layout_weight属性值为0的控件的宽度或者高度;再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度;
android:layout_width="match_parent"???——》当前的线性布局宽度占整个父元素;
注意:宽度占满窗体???——》相对于父元素(当前的线性布局)为当前的窗体;
tools:context="com.example.activitylife.MainActivity":???——》用于指定渲染上下文;
android:background="@android:color/holo_green_light"???——》设置背景色;
(EditText)android:hint???——》设置输入框内的提示信息;???——》当EditText为空时;
android:orientation???——》设置线性布局是以列或行来显示内部子元素;
线性布局可以嵌套;