登录后台

页面导航

LinearLayout(线性布局)

Android中有六大布局(现已扩展到八大布局),分别是:

  • LinearLayout(线性布局)
  • RealtiveLayout(相对布局)
  • TableLayout(表格布局)
  • FrameLayout(帧布局)
  • AbsoluteLayout(绝对布局)
  • GridLayout(网格布局)

一般常用到的是LinearLayout(线性布局)和RealtiveLayout(相对布局)

学习导图

img

基本代码块:

<LinearLayout   
android:layout_width="match_parent"   
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"/>  

一、常用属性

1.orientation属性

指布局内控件的排列方式

LinearLayout(线性布局)内的控件,都是以线性排列的(要么竖着一行要么横着一行)。主要通过LinearLayoutorientation属性进行调节。

  •   android:orientation="horizontal"//横向(水平)排列
  •   android:orientation="vertical"//纵向(垂直)排列
2.gravity属性

指控件内布局的对齐方式

大部分控件都会有的一种属性,用于指定控件内部其他控件元素的对齐方向

  •   android:gravity="left"//左对齐
  •   android:gravity="right"//右对齐
  •   android:gravity="top"//顶端对齐
  •   android:gravity="bottom"//底部对齐
  •   android:gravity="center"//居中对齐
    3.layout_gravity属性

    指该控件在父布局内的对齐方式

    4.layout_width/layout_height属性

    指控件的宽和高

    这两个属性在所有的控件、布局中都存在。因为控件是以二维的形式展示出来,所以width代表控件的宽,height代表控件的高。宽和高虽然可以自己设置但是不会超过父布局(即这个控件(布局)的上一级控件(布局))

  •   android:layout_width="match_parent"//填充父布局
      android:layout_height="match_parent"//填充父布局

android:layout_height="wrap_content"//自动高度,但不超过父布局


- ```xml
android:layout_width="100dp"//100单位宽度,但不超过父布局
android:layout_height="100dp"//100单位高度,但不超过父布局
5.id属性

指控件的资源id,在java文件中可以通过findViewbyId(id)寻找到该控件

6.background属性

指为控件指定一个纯色背景、图片背景或资源文件背景(渐变色)

二、Weight(权重属性):

①简单用法

weight属性,一般用于线性布局内控件相较于父容器(如上一个线性布局)所占用的百分比。

2:1比例1:1比例(50%)

示例代码(2:1比例):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    xmlns:tools="http://schemas.android.com/tools"   
    android:id="@+id/LinearLayout1"   
    android:layout_width="match_parent"   
    android:layout_height="match_parent"   
    android:orientation="horizontal">  
 
    <LinearLayout   
        android:layout_width="0dp"   
        android:layout_height="fill_parent"   
        android:background="#ADFF2F"
        android:layout_weight="1"/>   
 
 
    <LinearLayout   
        android:layout_width="0dp"   
        android:layout_height="fill_parent"   
        android:background="#DA70D6"    
        android:layout_weight="2"/>   
 
</LinearLayout> 

示例代码(1:1比例):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    xmlns:tools="http://schemas.android.com/tools"   
    android:id="@+id/LinearLayout1"   
    android:layout_width="match_parent"   
    android:layout_height="match_parent"   
    android:orientation="horizontal">  
 
    <LinearLayout   
        android:layout_width="0dp"   
        android:layout_height="fill_parent"   
        android:background="#ADFF2F"
        android:layout_weight="1"/>   
 
 
    <LinearLayout   
        android:layout_width="0dp"   
        android:layout_height="fill_parent"   
        android:background="#DA70D6"    
        android:layout_weight="1"/>   
 
</LinearLayout> 

要实现一个1:1的效果,只需要分别把两个LinearLayout的weight改成1即可。