Android线性布局

图片.png

1. 什么是Layout?

Layout——界面布局,为应用程序提供界面架构。控制Activity中控件的大小、位置、颜色等属性的方法.

  • Layout与ViewGroup的关系:
图片.png
  • ViewGroup是一个容器,继承自View.
  • ViewGroup是Layout和一些其它组件的基类.
  • 布局的种类:

LinearLayout 、RelativeLayout:


图片.png

List View 、Gird View:


图片.png
  • 布局的实现方式:
  1. 通过XML布局文件实现控件布局.
  2. 通过Java / Kotlin代码实现控件布局.
  • 编写布局文件:
  1. 每一个布局文件有且仅有一个根标签(元素),必须为View或ViewGroup对象.
  2. 在根标签下添加子元素,并逐渐建立一个控件的层次来定义Layout.


2. LinearLayout:

线性布局(LinearLayout)是程序中最常见的一种布局方式,分为水平(horizontal)线性布局和垂直(vertical)线性布局两种,通过 Android:orientation 属性可以设置线性布局的方向。

线性布局的特点:各个子元素之间彼此连接,中间不留空白.

在线性布局中,有几个非常重要的属性,直接决定了元素的布局和位置,这几个属性是:

orientation:

android:orientation (线性布局以列或行来显示内部子元素).
android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用.即:left,right,center_horizontal 是生效的.
android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用.即:top,bottom,center_vertical 是生效的.


gravity:

android:layout_gravity是本(子)元素相对于父元素的对齐方式设置在子元素上.
android:gravity="bottom|right"是本(父)元素所有子元素的对齐方式,设置在父元素上,多个值用 | 隔开.


padding && margin:

android:padding="10dp" (是本元素所有子元素的与父元素边缘的距离,设置在父元素上).
android:layout_marginLeft="10dp"(子元素与父元素边缘的距离,设置在子元素上).


weight:

android:layout_weight ="1"(线性布局内子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大.
前提是子元素设置了android:layout_width = "match_parent" 属性 ( 水平方向 )或 android:layout_height = "match_parent"属性( 垂直方向).
如 果 某 个 子 元 素的android:layout_width = "wrap_content"android:layout_height=" wrap_content” ,则 android:layout_weight 的设置值 对该方向上空间的分配则刚好相反

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