安卓基础-线性布局

一、创建线性布局文件

在 Android Studio 中创建线性布局文件的步骤如下:

  1. 找到项目中的 res/layout 目录。
  2. 右键点击 layout 文件夹,选择 New > Layout Resource File。
  3. 在弹出的对话框中,为布局文件命名(例如:linear_layout)。
  4. 注意:布局文件名只能包含小写字母、数字和下划线,且不能以数字开头。

二、线性布局的基本结构

新建的布局文件默认根元素是 ConstraintLayout。要使用线性布局,需要将根元素改为 LinearLayout:

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- 在这里放置其他控件 -->

</LinearLayout>

布局文件由成对的 XML 标签组成,用于放置按钮、文本框等控件。

三、布局的共有属性

所有 View 和 ViewGroup(包括 LinearLayout)都共享以下基本属性:

  • 宽度(layout_width) :三种赋值方式:
    • match_parent:与父容器宽度一致。
    • wrap_content:根据内容自适应宽度。
    • 具体数值:如 100dp 或 20sp。
  • 高度(layout_height):与宽度相同的三种赋值方式。
  • 内边距(padding):控制控件内部内容与控件边缘的空间。
  • 外边距(layout_margin):控制控件与容器或其他控件之间的空间。

四、线性布局特有的属性

线性布局除了共有属性外,还有三个核心特有属性:

  1. 方向(orientation):决定布局是垂直还是水平排列子控件。
  2. 权重(layout_weight):用于按比例划分剩余空间。
  3. 重力(layout_gravity):控制子控件在布局中的摆放位置。

五、方向属性(orientation)的使用

android:orientation 属性有两个取值:

  • vertical:垂直方向布局,子控件从上往下依次摆放。
  • horizontal:水平方向布局,子控件从左往右依次摆放。

注意 :如果不指定方向,默认为 horizontal(水平布局)。建议在开发中明确指定方向,避免意外布局行为。

六、权重属性(layout_weight)的使用

layout_weight 是一个比重值,用于控制子控件在布局中占用的空间比例。

  • 权重值越大,控件占用的空间越多。
  • 权重值可以是小数,但必须是正数。
  • 权重值越大,控件越能占据父布局的剩余空间。
  • 关键技巧 :要按比例划分空间,通常需要将对应方向的尺寸(layout_width 或 layout_height)设置为 0dp,然后通过权重分配空间。

示例:两个按钮水平均分空间

XML 复制代码
<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="按钮1" />

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="按钮2" />

七、重力属性(layout_gravity)的使用

layout_gravity 属性用于设置子控件在父布局中的对齐方式。

常用取值包括:

  • top、bottom、center_vertical:控制垂直方向位置。
  • left、right、center_horizontal:控制水平方向位置。
  • center:同时居中对齐(相当于 center_vertical|center_horizontal)。
相关推荐
9624564 小时前
从“一键创建 ECS”到完整恢复状态机:ACK 抢占式节点恢复 Android 工具升级复盘
android
LCD液晶屏7 小时前
京瓷液晶屏停产替代:杭州立煌科技工业 LCD 解决方案
android·科技
2501_932750269 小时前
Android 自定义 View 入门
android
事圆则缓11 小时前
Android 开启线程的几种方式:Thread、线程池、HandlerThread 与协程
android
半摆烂日常1 天前
低代码平台API对接实践:接口鉴权与数据同步的完整实现
android·低代码·rxjava
事圆则缓1 天前
volatile 使用场景全解析:它能保证什么,又解决不了什么
android
蒲公英内测分发1 天前
智能投影仪参加海外展会,未上架的 Android 配套 App 怎么让客户限时试用?
android
ii_best1 天前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
终端安全笔记1 天前
安卓做 MDM 管控,先分清三种注册入口
android·安全·智能手机