常见界面布局之LinearLayout线性布局

    技术2025-03-17  28

    1.什么是LinearLayout线性布局

    LinearLayout (线性布局)通常指定布局内的子控件水平或者轻直排列。在XML布局文件中定义线性布局的基本语法格式如下:

    <LinearLayout xmls:android="http: //schemas,android.com/apk/res/android"> 属性 = " 属性值 " ......> </LinearLayout >

    除了布局的通用属性外,LinearLayout布局还有两个比较常用的属性,具体如表所示。 表 LinearLayout 布局常用属性

    属性名称功能描述android:orientation设置布局内控件的排列顺序android:layout_weigh在布局内设置控件权重,属性值可直接写int值

    属性说明 针对表中的属性进行详细讲解,具体如下: (1) android:orientation属性。用于设置LinearLayout布局中控件的排列顺序,其可选值为 vertical 和horizontal. 其中: vertical: 表示LinearLayout布局内控件依次从上到下竖直排列。 horizontal: 表示LinearLayout布局内控件依次从左到右水平排列。 (2) android:layout_weight属性。该属性被称为权重,通过设置该属性值,可使布局内的控件按照权重比显示大小,在进行屏幕适配时起到关键作用。

    为控件分配权重

    如何使用android:layout_weight属性为LinearLayout中的控件分配权重,具体步骤如下: (1)创建程序。创建一个名为LinearLayout的应用程序,指定包名为cn.itcast.linearlayout. (2)放置界面控件。在activity_main.xml文件的LinearLayout布局中放置3个Button控件,分别用于显示按钮1、按钮2和按钮3, 具体代码 如图所示:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" //设置布局内控件的排列顺序(horizontal 水平,vertical 垂直) android:orientation="horizontal" //水平布局o > <Button android:layout_width="0dp" android:layout_height="wrap_content" //权重比例是1:1:2,随意在这里是1 android:layout_weight="1" android:text="按钮1" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" //权重比例是1:1:2,随意在这里是1 android:layout_weight="1" android:text="按钮2" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" 权重比例是1:1:2,随意在这里是2 android:layout_weight="2" android:text="按钮3" /> </LinearLayout> package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import android.graphics.Color; import android.os.Bundle; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linearlayout_main); //调用linearlayout_main }

    Processed: 0.013, SQL: 9