文章目录

  • 常见属性
  • 实例
    • 设置容器的对齐与排列方式
    • 设置分割线
    • 设置权重分配空间

常见属性

orientation 布局中组件的排列方式,分为垂直和水平
gravity 控制组件所包含的子元素的对齐方式,可多个组合
layout_gravity 控制该组件在父容器里的对齐方式
background 为该组件设置一个背景图片,或者是直接用颜色覆盖
divider 分割线
showDividers 设置分割线所在的位置,none(无)、beginning(开始)、end(结束)、middle(每两个组件间)
dividerPadding 设置分割线的padding
layout_weight 设置权重来等比例划分区域

实例

设置容器的对齐与排列方式

控制布局排列,当orientation设置为vertical时竖直排列,horizontal时水平排列:


设置gravitycenter时子元素置于中央,center_horizontal则在水平方向居中,center_vertical则是垂直方向居中:

同时该设置还可以组合,用|连接,如center_horizontal|bottom的效果为:

除了在父容器中设置,也可以在子容器中通过layout_gravity设置该容器的对齐方式,对于第一个子容器,我们令其layout_gravitycenter,则有

因为此时分配给第一个容器的空间仅为红色方框圈出的部分,所以将其置于中央后可以得到上面的结果。

设置分割线

随便找了个分割线图片:

divider加载该图片资源,同时用showDividers设置分割线所在的位置,用dividerPadding设置分割线距离屏幕两侧的距离:

<?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:divider="@drawable/divider"android:showDividers="middle"android:dividerPadding="100dp"android:orientation="vertical"><LinearLayoutandroid:background="@color/purple_200"android:layout_width="100dp"android:layout_height="100dp"/><LinearLayoutandroid:background="@color/purple_500"android:layout_width="100dp"android:layout_height="100dp"/><LinearLayoutandroid:background="@color/purple_700"android:layout_width="100dp"android:layout_height="100dp"/></LinearLayout>


可以尝试修改参数来观察不同的效果:

android:divider="@drawable/divider"
android:showDividers="beginning"
android:dividerPadding="20dp"


一种更灵活的设置分割线的方式为直接在两个元素之间添加View:

<Viewandroid:background="@color/black"android:layout_width="match_parent"android:layout_height="2dp"/>

设置权重分配空间

当我们人为设置三个元素的大小后,元素被分配到的空间在orientation设置的方向上就是与元素的大小相等的,这也导致很大的空白区域产生。如果我们想要瓜分这些空白区域,可以在元素中设置layout_weight,这样剩余空间将按照权重的比例分配,如5:0:3,分配的空间会在保留元素原有空间大小的基础上进行添加:

<?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:divider="@drawable/divider"android:showDividers="middle"android:dividerPadding="20dp"android:orientation="vertical"><LinearLayoutandroid:background="@color/purple_200"android:layout_weight="5"android:layout_width="100dp"android:layout_height="100dp"/><LinearLayoutandroid:background="@color/purple_500"android:layout_width="100dp"android:layout_height="100dp"/><LinearLayoutandroid:background="@color/purple_700"android:layout_weight="3"android:layout_width="100dp"android:layout_height="100dp"/></LinearLayout>


如果想要空间完全按比例来分配,建议直接把对应方向上的大小设置为0dp

Android开发之LinearLayout布局相关推荐

  1. Android开发之xml布局文件无故报错、R文件丢失

    在编写或修改Android布局文件时常常将错误修正好后依然无法正常运行,而且R文件丢失,通常有以下两个解决办法: 1.在Eclipse点击Project>Clean,之后如果依然无法运行,试试2 ...

  2. Android开发之recyclerview布局加载不全的问题

    先看图: 我明明写的是填充父布局怎么就只有这么窄呢? 看下我加载布局的方法: View fundView = View.inflate(parent.getContext(), R.layout.it ...

  3. Android 开发之旅:深入分析布局文件又是“Hello World!”

    引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实践,我们拿起手术刀对默认的"Hello World!"程序进行了3个手术,我们清楚了"Hell ...

  4. android布局黑色字体颜色,Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法示例...

    本文实例讲述了Android开发之FloatingActionButton悬浮按钮基本使用.字体.颜色用法.分享给大家供大家参考,具体如下: 这里主要讲: FloatingActionsMenu自定义 ...

  5. Android开发之2048安卓版

    之前是在eclipse上写的,后面换成了android sudio. 2048游戏的UI整体可以采用线性布局,即LinearLayout,其中嵌套一个线性布局和一个GridLayout,内嵌的线性布局 ...

  6. Android开发之旅:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

  7. Android开发之无bug滑动删除源码(非第三方库)

    Android开发之无bug滑动删除源码(非第三方库源码请在最后面自行下载) 1.我们先来看下效果图:上边是抽取出来的demo,下边是公司用到的项目 2.我们来看下如何调用(我们这里以listView ...

  8. Android开发之SlidingDrawer(一)

    Android开发之SlidingDrawer(一) /* *  Android开发之SlidingDrawer *  北京Android俱乐部群:167839253 * Created on: 20 ...

  9. android之json解析优化,Android开发之json解析

    目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...

最新文章

  1. P、NP、NPC问题最通俗的讲解
  2. mustache模板技术
  3. 使用IntentService在Service中创建耗时任务
  4. 国外计算机科学英语演讲,2014年暨大英语演讲大赛圆满落幕
  5. 管程,进程及线程之间的区别
  6. Python黑客入门:暴力破解zip,零基础也可以学会!
  7. python3安装scrapy及使用方法(爬虫框架)
  8. 检测手机屏幕是否亮屏解锁
  9. linux hal 结构图
  10. Unity高亮插件HighlightingSystem使用
  11. jdk的官方下载地址
  12. linux下sybase创建数据库,教小白搭建sybase数据库环境
  13. 图卷积神经网络代码讲解,卷积神经网络python实例
  14. 洛谷 P1338 末日的传说 解题报告
  15. vue:如何实现文字竖排
  16. 容器:forward_list用法及示例
  17. week10 day1 JavaScript
  18. Nginx设置访问Web页面时用户名密码验证
  19. 如何引流中老年粉?中老年人群怎么引流?中老年粉如何变现?
  20. 中职计算机组装与维修专业,教育部中等职业计算机示范专业规划教材:计算机组装与维修...

热门文章

  1. LPCSTR CONST 指针
  2. Python md5去重图片文件
  3. secureCRT 保存密码
  4. Linux nginx服务添加SSL证书并实现http重定向https
  5. HDU 1085 Holding Bin-Laden Captive! 活捉本拉登(普通型母函数)
  6. ODOO13 如何在Many2one字段选择控件上进行多条件搜索
  7. 为什么游戏引擎大多选择使用 C++ 而不是nbsp;C 开发?
  8. 安装好Vagrant在用户目录下后 后发现虚拟机磁盘空间爆满的血泪填坑记
  9. 简单实用的邮件任务 ,让验证码、激活链接来丰富你的登录注册
  10. 【行研报告】数据收集与同意调查报告2020(英文).PDF——附下载