第23讲 UI_布局 之相对布局

、RelativeLayout(相对布局)

RelativeLayout(相对布局)是指组件的位置总是相对兄弟组件、父容器来决定的(相对位置),如某个组件的左边右边,上边下边。相对布局是除线性布局之外最常用的,它相对于线性布局来说更加灵活,每个组件都可以指定与其它组件或父组件的位置,只是必须通过ID来进行指定。相对布局的子控件必须有唯一的id属性以使规则正确应用。

【注意】:

1.当心循环规则,循环规则发生在两个控件具有互相指向的规则时。如果你在布局设计中使用了循环规则,你将会得到以下错误信息:

IllegalStateException: Circulardependencies cannot exist in a RelativeLayout(相对布局中不允许存在循环依赖)

2.使用相对布局代替嵌套线性布局以改进程序性能和响应能力。


表1-1
组件之间的位置关系

属性名称

作用

android:layout_above

将组件放在指定ID组件的上方

android:layout_below

将组件放在指定ID组件的下方

android:layout_below="@id/button1"  

android:layout_toLeftOf

将组件放在指定ID组件的左方

android:layout_toRightOf

将组件放在指定ID组件的右方

表1-2
组件对齐方式

属性名称

作用

android:layout_alignBaseline

将该组件放在指定ID组件进行中心线对齐

android:layout_alignTop

将该组件放在指定ID组件进行顶部对齐

android:layout_alignBottom

将该组件放在指定ID组件进行底部对齐

android:layout_alignLeft

将该组件放在指定ID组件进行左边缘对齐

android:layout_alignRight

将该组件放在指定ID组件进行右边缘对齐,

android:layout_alignRight="@id/button2"

表1-3
当前组件与父组件的对齐方式

属性名称

作用

android:layout_alignParentTop

该组件与父组件进行顶部对齐

android:layout_alignParentBottom

该组件与父组件进行底部对齐

android:layout_alignParentLeft

该组件与父组件进行左边缘对齐

android:layout_alignParentRight

该组件与父组件进行右边缘对齐,

android:layout_alignParentRight="true"

android:layout_alignWithParentIfMissing

参照控件不存在或不可见时参照父控件

表1-4
组件放置的位置

属性名称

属性名称

android:layout_centerHorizontal

将该组件放置在水平方向中央的位置

android:layout_centerHorizontal="true"

android:layout_centerVertical

将该组件放置在垂直方向的中央的位置

android:layout_centerInParent

将该组件放置在父组件的水平中央及垂直中央的位置

表 1-5

android:layout_marginLeft

当前控件左侧的留白

android:layout_marginRight

当前控件右侧的留白

android:layout_marginTop

当前控件上方的留白

android:layout_marginBottom

当前控件下方的留白

第23讲 UI_布局 之相对布局的更多相关文章

  1. 第24讲 UI_布局 之帧布局 表格布局 绝对布局

    第24讲 UI_布局 之帧布局 表格布局 绝对布局 3. FrameLayout(帧布局) 帧布局是从屏幕的左上角(0,0)坐标开始布局,多个组件层叠排序,后一个组件总会将前一个组件所覆盖,除非最后一 ...

  2. 第21/22讲 UI_布局 之 线性布局

    第21/22讲 UI_布局 之 线性布局 布局管理就是组件在activity中呈现方式,包括组件的大小,间距和对齐方式等. Android提供了两种布局的实现方式: 1.在xml配置文件中声明:这种方 ...

  3. Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)

    如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...

  4. CSS布局经典—圣杯布局与双飞翼布局

    在我之前的博客网页整体布局完全剖析-剖完你不进来看一下么?中总结单列.两列.三列固宽与变宽布局,我还以为已经囊括了所有经典的网页布局方法了呢,当然除了CSS3的弹性盒模型没有涉及到,现在看来确实是自己 ...

  5. IOS开发之绝对布局和相对布局(屏幕适配)

    之前如果做过Web前端页面的小伙伴们,看到绝对定位和相对定位并不陌生,并且使用起来也挺方便.在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对定位和相对定位有所不同但又有相似之处.下 ...

  6. duilib各种布局的作用,相对布局与绝对布局的的意义与用法

    大多数刚使用duilib的朋友时候非常依赖duilib自带的设计器,用他可以拖拉控件,可视化的做出自己想要的界面.可是用一段时间就会发现原带的设计器有很多bug,时不时会崩溃,支持的控件数量有限,属性 ...

  7. android布局 FrameLayout(帧布局)详解

    看到一篇很有趣的文章对我就是冲着萌妹子看的 FrameLayout(帧布局) 前言 作为android六大布局中最为简单的布局之一,该布局直接在屏幕上开辟出了一块空白区域, 当我们往里面添加组件的时候 ...

  8. flex布局 响应式布局

    移动端页面开发流程   移动端页面布局 一.移动端app分类 1.Native App原生app手机应用程序 使用原生的语言开发的手机应用,Android系统用的是java,ios系统用的是objec ...

  9. CSS的flex布局和Grid布局

    一.什么是 flex 布局 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这 ...

随机推荐

  1. rac 10g 加入节点具体解释

    目标: 当前我环境中是有两个节点RAC1和RAC2 节点.如今添加一个RAC3节点.   概要:为现有的Oracle10g RAC 加入节点大致包含下面步骤: 1. 配置新的server节点上的硬件及 ...

  2. MySQL数据库的环境及简单操作

    ***********************************************声明*************************************************** ...

  3. Python序列的方法(转)

    在快速教程中,我们了解了最基本的序列(sequence).回忆一下,序列包含有定值表(tuple)和表(list).此外,字符串(string)是一种特殊的定值表.表的元素可以更改,定值表一旦建立,其 ...

  4. source insight3.5中文乱码解决方案

    source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2 ...

  5. .NET基础拾遗(7)多线程开发基础1

    一.多线程编程的基本概念 1.1 操作系统层面的进程和线程 (1)进程 进程代表了操作系统上运行着的一个应用程序.进程拥有自己的程序块,拥有独占的资源和数据且可以被操作系统调度. But,即使是同一个 ...

  6. DataGrid( 数据表格) 组件[1]

    本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ...

  7. android上line-height的问题

    关于line-height大家应该非常熟悉了吧,就是用来做垂直居中的,屡试不爽,基本上没有什么问题,但是最近一个项目,测试提了一个bug,看图吧. 从别处窃的图,这个问题只有安卓上才能复现,做了dem ...

  8. JAVA-FileInputStream之read方法

    今天一个友询问FileInputStrem方法的read()和read(byte b) 方法为什么都用-1来判断读文件结束的问题,在此和大家一起学习下. 关于FileInputStream 它用于读取 ...

  9. Sql Server同步之订阅

    1.新建一个订阅 2.订阅新建完成之后,先选择发布端 3.选择需要同步的组 4.选择目标数据库 5.选择链接发布端方式,采用sql server login 6.选择执行同步的计划 7.选择是立马执行 ...

  10. NHibernate+NUnit (VS2012+SQL Server2008) (转)

    源博客:http://blog.csdn.net/jiajiayouba/article/details/9877875 首先,你要明白,NHibernate在.NET中的作用和Hibernate在J ...