简介

在Android系统中控件有5种布局规则:线性布局(LinerLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)、绝对布局(AbsoluteLayout)。(可能我的课本有点旧了,网上说有六种)

LinearLayout线性布局,可以设置水平和垂直两个方向,(默认为水平方向)。

属性

列举一些比较冷门的属性,比如宽、高、id这些就不列举出来了。几个需要注意的属性:

  • orientation 设置容器(子控件)存放的方式(方向)
  • layout_weight 设置权重(等比例划分父元素剩余空间,用的比较多)

代码演示

接上一篇博客,创建第一个安卓应用。在其基础上进行代码演示。
项目(app)的布局文件都存放在工程文件夹/项目文件夹/src/main/res/layout/。当前这个app只有一个页面,我们打开activity_main.xml文件打开。双击第二行的标签名,将其该为LinearLayout即线性布局。右侧点击Preview即可看到实时效果预览。跟HTML有点不一样,各个属性前边都有一个android:,属性之间使用换行隔开不需要使用;或,

orientation属性

orientation属性有两个值可选,horizontal水平和vertical垂直(记忆小窍门:V可看作是向下的箭头,垂直方向包括上下)。

现在往里边添加一个<LinearLayout></LinearLayout>标签(线性布局),不设置orientation的属性。再添加三个<View/>标签进去,我们可以看到线性布局默认的方向水平android:orientation=“horizontal”,且当放置水平方向满屏时不会自动换行。

默认为水平方向布局,现在更改为垂直方向vertical。(也是一样不会自动换行)

在外边添加<View/>标签时,会被挤出去。(当放置水平方向满屏时不会自动换行)

对齐

对齐使用gravity属性(线性布局特有),可以设置水平方向居中对齐center_horizontal、垂直方向居中对齐center_vertical、两个方向都居中对齐center

宽高&权重

layout_width,高layout_height,权重layout_weight(可能其他书不这么叫)。由于安卓设备的特殊性(太多了),官方建议使用单位dp代替px,想深入了解dp的点这里。

宽高,值可以是数字+dpmatch_parent,wrap_content。权重,值为数字。

  • match_parent:强制性地使视图扩展至父元素大小。可以理解为占满父元素空余的空间。
  • wrap_content:自适应大小,强制性地使视图扩展以便显示其全部内容。根据内容自适应调整。(见下图)

权重layout_weight是一个很有用的属性,父元素先将子元素布局所占用的空间减去剩下的空间(有的话)再通过权重分配给子元素。深入了解layout_weight:传送门。

那具体怎么使用呢?比较常用的就是均分父元素的空间了。或按照某个比例来占用父元素的空间。如下图,再添加两个<LinearLayout></LinearLayout>标签,修改父元素的线性布局方向为垂直方向。第一个标签设置了高度为200dp(没设置权重),所以新添加的两个标签设置一样的权重之后它们就会均分剩下的空间。(父元素是垂直方向线性布局的所以这里是垂直方向均分剩余空间)

如果给第一个标签添加一样的权重,那么它所占的空间将会是原有200dp+剩下空间/3,看下图明显比下边两个标签大。

把第一个标签设置的高度值设置为0,则三个标签会在垂直方向均分整个手机屏幕。

更详细教程:传送门
原文链接:线性布局

线性布局 - Android开发相关推荐

  1. android简单实现表格布局,Android开发中TableLayout表格布局

    Android开发中TableLayout表格布局 一.引言 在移动端应用程序开发中,常常会使用到表格布局,iOS和Android开发框架中都提供了独立的表格视图控件供开发者使用,例如iOS中的UIT ...

  2. android设置水平布局,Android开发借助LinearLayout实现垂直水平居中布局

    释放双眼,带上耳机,听听看~! 在Android应用程序的开发中,有时需要限制水平和垂直屏幕的切换,今天这篇文章是技术狗小编为大家整理的Android应用借助LinearLayout实现垂直水平居中布 ...

  3. C语言窗口布局,Android开发入门之学习笔记(四):程序窗口的布局(二)

    这一次我们来讨论一下LinearLayout这种布局方式.相对来说,这个布局方式还比较简单.通过设置它的属性android:orientation来决定其包含的View是以水平方向还是垂直方向摆放. ...

  4. android 返回图标布局,Android 开发BottomNavigationView学习

    前言 注意这个里介绍的是AndroidX的com.google.android.material.bottomnavigation.BottomNavigationView xml布局中 app:la ...

  5. android开发4:Android布局管理器1(线性布局,相对布局RelativeLayout-案例)

    控件类概述 View 可视化控件的基类 属性名称 对应方法 描述 android:background setBackgroundResource(int) 设置背景 android:clickabl ...

  6. Android开发中几种布局方式介绍

    转自:http://www.jianshu.com/p/3021a7beed53 今天我们的主要内容就是安卓的主要几个基础的布局方式.(主要布局如下:) 1.线性布局(LinerLayout) 2.相 ...

  7. android线性布局控制间隙,Android线性布局(Linear Layout)

    Android 中常用布局 [1] 线性布局 [2] 相对布局 [3] 帧布局  -- FrameLayout [4] 表格布局 -- !!!一个 tabrow 就代表一行 [5] 绝对布局   -- ...

  8. Android布局——LinearLayout 线性布局

    简介 贴上官方文档:线性布局  |  Android 开发者  |  Android Developers Linear 意为 线形的,线状的,所以该布局具有线的特点,要么是横向的,要么是竖向的. 该 ...

  9. Android开发:自定义GridView/ListView数据源

    http://mobile.51cto.com/android-259861.htm 在开发中,我们常常会遇到比较复杂的GridView/ListView的布局,重新实现BaseAdapter不但能帮 ...

最新文章

  1. 深入理解Java虚拟机——JVM类加载机制(类加载过程和类加载器)
  2. Java Web开发小结
  3. 210307共享内存的读写
  4. MarshalByRefObject浅析
  5. 微信小程序下拉刷新列表onPullDownRefresh;微信小程序上划加载列表onReachBottom;uni-app微信小程序下拉加载数据;uni-app微信小程序上划页面加载数据
  6. vue2.0 如何自定义组件(vue组件的封装)
  7. python入门指南阅读答案_【python】入门指南1
  8. 报道称奈雪的茶通过港交所聆讯 回应:以公司经监管机构批准的公告为准
  9. python入门程序异常_Python 入门 之 异常处理
  10. mysql 迁移 乱码_迁移Windows下的MySQL时字符乱码问题
  11. 运放专题:电压比较器
  12. 小滴课堂-学习笔记:(1)JAVASE课程
  13. cad批量打印快捷键_CAD布局批量打印必备工具之一
  14. 免费的音频视频压缩工具和方法
  15. java rxtx_Java使用开源Rxtx实现串口通讯(串口开发) | 学步园
  16. 【程序人生】回忆职业生涯(一)选择职业时的“图样图森破”
  17. 家居物联网(IoT)接入控制与认证的再思考
  18. JS 关于事件冒泡,事件捕获,阻止事件冒泡,取消默认事件
  19. 蓝桥杯——PCF8591
  20. 如何有效的做好线上引流?如何自己做引流推广?

热门文章

  1. 虎宝宝起名、虎年取名禁忌
  2. 7种内存泄露场景和13种解决方案
  3. Webrtc 实现Android群控实时推流
  4. linux redis退出命令行,linux的redis启动关闭命令
  5. 前端页面结构简单介绍
  6. MyBatis之如何解决数据库数据加密解密
  7. Java集合框架及基本接口
  8. 微信公众平台高级群发接口(转载)
  9. 计算机科学与技术是英语一码,“计算机科学与技术专业本科课程”的英文翻译是什么?...
  10. c语言递归的用法,C语言递归操作用法总结