0


【Android】线性布局(LinearLayout)最全解析

【Android】线性布局(LinearLayout)最全解析

一、LinearLayout概述

线性布局(LinearLayout)

主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能方一个控件。

在这里插入图片描述
使用线性布局,需要将布局节点改成

LinearLayout

,基本格式如下:

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity">
 ....
    
</LinearLayout>

二、LinearLayout常用属性

2.1 orientation属性

在线性布局中,控件排列有水平和垂直两个方向,控件排列方向由

android:orientation

属性来控制,该属性需要加在

LinearLayout

标记的属性中。

在这里插入图片描述
在这里插入图片描述
从上图可以看出,将

orientation

属性值设置成为

horizontal

,控件将从水平方向

从左往右

排列,将

orientation

属性值设置成为

vertical

控件将从垂直方向

从上往下

排列。

2.2 gravity属性

线性布局的控件默认是

从左往右

排列或

从上往下

排列,如果想让线性布局中的控件排列对齐右边缘或者底部,可以用

gravity

属性控制。
在这里插入图片描述

不过该属性值并不是只有在

LinearLayout

中才能使用,其他的布局用该属性同样能生效。

2.3 layout_weight属性

LinearLayout

中另外一个常用的属性是

layout_weight

,该属性需要加在

LinearLayout

的子控件中。其作用是分配线性布局中的剩余空间到该控件上。

如下图所示,在控件没有添加

layout_weight

属性时,控件未占满线性布局的区域会空出来。
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="400dp"android:layout_height="300dp"android:background="@color/teal_200"android:orientation="horizontal"tools:context=".MainActivity"><Buttonandroid:id="@+id/button"android:layout_width="100dp"android:layout_height="wrap_content"android:text="Button"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>

给控件button2加上

android:layout_weight="1"

后,会把线性布局剩余空间全部占满。

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="400dp"android:layout_height="300dp"android:background="@color/teal_200"android:orientation="horizontal"tools:context=".MainActivity"><Buttonandroid:id="@+id/button"android:layout_width="100dp"android:layout_height="wrap_content"android:text="Button"/><Buttonandroid:id="@+id/button2"android:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>

如果给

button1

button2

都加上

android:layout_weight="1"

,则两个控件均匀分配剩余空间。
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="400dp"android:layout_height="300dp"android:background="@color/teal_200"android:orientation="horizontal"tools:context=".MainActivity"><Buttonandroid:id="@+id/button1"android:layout_width="100dp"android:layout_weight="1"android:layout_height="wrap_content"android:text="Button"/><Buttonandroid:id="@+id/button2"android:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>

如果给

button1

加上

android:layout_weight="3"

button2

加上

android:layout_weight="1"

,由于剩余的空间是200,

button1

button2

会按照3:1的比例来分配剩余空间。
在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="400dp"android:layout_height="300dp"android:background="@color/teal_200"android:orientation="horizontal"tools:context=".MainActivity"><Buttonandroid:id="@+id/button1"android:layout_width="100dp"android:layout_weight="3"android:layout_height="wrap_content"android:text="Button"/><Buttonandroid:id="@+id/button2"android:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"/></LinearLayout>

本文转载自: https://blog.csdn.net/huweiliyi/article/details/122909530
版权归原作者 Teacher.Hu 所有, 如有侵权,请联系我们删除。

“【Android】线性布局(LinearLayout)最全解析”的评论:

还没有评论