Android XML 布局基础(五)线性布局 - LinearLayout

简介: Android XML 布局基础(五)线性布局 - LinearLayout

一、简介

  • 多种 Layout 布局是可以嵌套组合使用的。
  • LinearLayout 是一个视图容器,用于使所有子视图在单个方向(垂直或水平)保持对齐,可使用 android:orientation 属性指定布局方向。
  • 测试代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns: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">
    <!-- 由于最外层不是 Layout,则这里为根布局 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:background="#ffc">
        <!-- 子视图列表 -->
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#cff"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#fcf"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#cff"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#fcf"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#cff"/>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

二、属性

  • android:orientation="horizontal"
    测试代码同上,修改一下方向代码即可。

  • android:orientation="vertical"
    测试代码同上,修改一下方向代码即可。

  • android:layout_weight="1"
    通过给子视图设置权重值,来分配子视图所占空间的权重(比例),如图三个子视图权重分别设置为 1,则均分页面空间。
<?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns: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">
     <!-- 由于最外层不是 Layout,则这里为根布局 -->
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="horizontal"
         android:background="#ffc">
         <!-- 子视图列表 -->
         <View
             android:layout_width="80dp"
             android:layout_height="80dp"
             android:layout_weight="1"
             android:background="#cff"/>
         <View
             android:layout_width="80dp"
             android:layout_height="80dp"
             android:layout_weight="1"
             android:background="#fcf"/>
         <View
             android:layout_width="80dp"
             android:layout_height="80dp"
             android:layout_weight="1"
             android:background="#cff" />
     </LinearLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>


  • 也可以组合使用
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns: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">
    <!-- 由于最外层不是 Layout,则这里为根布局 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="#ffc">
        <!-- 子视图列表 -->
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="#cff"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="2"
            android:background="#fcf"/>
        <View
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="0.5"
            android:background="#cff" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>


相关文章
|
23天前
|
XML 编解码 搜索推荐
XML 布局小技巧
【10月更文挑战第24天】通过掌握这些 XML 布局小技巧,我们可以更轻松地设计出高质量的用户界面,提升用户体验。在实际应用中,要根据具体项目的需求和特点,灵活运用这些技巧,不断探索和创新,打造出独具特色的界面布局。
37 1
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
67 10
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
113 0
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
58 1
|
3月前
|
存储 Java 数据库
基于全志H713 Android 11:给TvSettings添加default.xml默认值
本文介绍了在全志H713 Android 11平台上为TvSettings应用添加HDMI CEC功能的默认设置值的方法,通过修改SettingsProvider的源码和配置文件来实现默认值的设置,并提供了详细的步骤和测试结果。
78 0
基于全志H713 Android 11:给TvSettings添加default.xml默认值
|
3月前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
113 12
|
3月前
|
Shell Android开发
安卓scheme_url调端:在AndroidManifest.xml 中如何配置 Intent-filter?
为了使Android应用响应vivo和oppo浏览器的Deep Link或自定义scheme调用,需在`AndroidManifest.xml`中配置`intent-filter`。定义启动的Activity及其支持的scheme和host,并确保Activity可由外部应用启动。示例展示了如何配置HTTP/HTTPS及自定义scheme,以及如何通过浏览器和adb命令进行测试,确保配置正确无误。
|
4月前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
130 15
|
3月前
|
XML 数据可视化 API
Android经典实战之约束布局ConstraintLayout的实用技巧和经验
ConstraintLayout是Android中一款强大的布局管理器,它通过视图间的约束轻松创建复杂灵活的界面。相较于传统布局,它提供更高灵活性与性能。基本用法涉及XML定义约束,如视图与父布局对齐。此外,它支持百分比尺寸、偏移量控制等高级功能,并配有ConstraintSet和编辑器辅助设计。合理运用可显著提高布局效率及性能。
239 0