RelativeLayout.addRule()方法

通过LayoutParams的 addRule方法来额外的添加别的规则了,android.widget.RelativeLayout.LayoutParams.addRule(int verb, int anchor),

其中 anchor 参数指定可以是 View 的 id(“相对于谁”)、RelativeLayout.TRUE(启用某种对齐方式)或者 是-1(应用于某些不需要 anchor 的 verb)[因为 RelativeLayout.TRUE的值为 -1 ,所以-1或者RelativeLayout.TRUE都是可以的]、是  0 (不启用这个规则)

其中 verb 参数指定相对的“动作”;

(1)如果是相对于父控件的相对布局的话 anchor 参数可以不用或者设置为-1或者RelativeLayout.TRUE ,

(2)如果是相对于级别和自己同一级的控件的话参数设置应该是 view 的id ,

(3)如果参数设置为 0 的话,则表示这个规则不会运用到该控件的布局中,当是相对于本身的父控件的时候这个参数可以省略。

比如:

relLayoutParams.addRule(RelativeLayout.ABOVE,imageViewId.getId())

子控件相对于控件:imageViewId在其的上面

relLayoutParams.addRule(RelativeLayout.BELOW ,imageViewId.getId())

子控件相对于控件:imageViewId在其的下面

relLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT ,-1) 与

relLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT ,RelativeLayout.TRUE) 与

relLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT )

表示的是一样的表示子控件在父控件的右边

(

relLayoutParams.setMargins(arg0, arg1, arg2, arg3)或者 relLayoutParams.topMargin=5 等等离某元素的左、上、右、下的距离单位

)

下面就将verb 相关常量名列如下:

relLayoutParams.alignWithParent=true   如果对应的兄弟元素找不到的话就以父元素做参照物

RelativeLayout.CENTER_HORIZONTAL   在父控件中水平居中

RelativeLayout.CENTER_VERTICAL   在父控件中垂直居中

RelativeLayout.CENTER_IN_PARENT  相对于父控件完全居中

RelativeLayout.ALIGN_PARENT_BOTTOM  紧贴父控件的下边缘

RelativeLayout.ALIGN_PARENT_TOP  紧贴父控件的上边缘

RelativeLayout.ALIGN_PARENT_LEFT 紧贴父控件的左边边缘

RelativeLayout.ALIGN_PARENT_RIGHT  紧贴父控件的右边缘

RelativeLayout.ABOVE  在某元素的上方  需要第二个参数为某元素的ID

RelativeLayout.BELOW 在某元素的下方  需要第二个参数为 某元素的ID

RelativeLayout.LEFT_OF  在某元素的左边  需要第二个参数为某元素的ID

RelativeLayout.RIGHT_OF  在某元素的右边  需要第二个参数为 某元素的ID

RelativeLayout.ALIGN_TOP 本元素的上边缘和某元素的的上边缘对齐 需要第二个参数为某元素的ID

RelativeLayout.ALIGN_BOTTOM  本元素的上边缘和某元素的的下边缘对齐 需要第二个参数为某元素的ID

RelativeLayout.ALIGN_LEFT  本元素的上边缘和某元素的的左边缘对齐 需要第二个参数为某元素的ID

RelativeLayout.ALIGN_RIGHT  本元素的上边缘和某元素的的右边缘对齐 需要第二个参数为某元素的ID

RelativeLayout.ALIGN_BASELINE    本元素的基线和某元素的的基线对齐 需要第二个参数为某元素的ID

http://www.aiuxian.com/article/p-2885445.html

RelativeLayout.addRule()方法的更多相关文章

  1. RelativeLayout.LayoutParams.addRule()方法

    1.应用场景 在使用RelativeLayout布局的时候,通常在载入布局之前在相关的XML文件中进行静态设置即可.但是,在有些情况下,我们需要动态的设置布局 的属性,在不同条件下设置不同的布局排列方 ...

  2. Android 动态改变布局属性RelativeLayout.LayoutParams.addRule()

    我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的 ...

  3. 代码中动态改变布局属性RelativeLayout.LayoutParams.addRule()

    我们知道,在 RelativeLayout 布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的 ...

  4. Android addRule()

    布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可. 但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的布局排列方式,这时候就需要用到 Relati ...

  5. Android开发之布局--RelativeLayout布局

    RelativeLayout 相对布局 true或false属性 Layout_centerHorizontal   当控件位于父控件的横向中间位置 Layout_centerVertical   当 ...

  6. 代码布局relativeLayout

    后台布局   在ANDROID 开发中有时候我们需要在后台添加布局文件这里我们来说一下后台添加RelativeLayout文件的方式: RelativeLayout,顾名思义,就是以“相对”位置/对齐 ...

  7. Catalina.createDigester方法详细理解

    这个方法主要设置(这个方法很重要,贵在理解,虽然还没学过设计模式..) 1.遇到<server>标签时创建StandardServer实例   设置StandardServer类内部的相关 ...

  8. ListView / GirdView Adpater的getView方法,首项多次调用

    通过Adapter为AbslistView提供内容是一个常见的做法:在ListView或者GridView的Adapter中的getView()方法中,加入一行日志,看getView()被调用的情况 ...

  9. android:gravity 和 android:layout_Gravity属性

    LinearLayout有两个非常相似的属性: android:gravity 与android:layout_gravity. 他们的区别在于: android:gravity 属性是对该view中 ...

随机推荐

  1. CLR寄宿和应用程序域

    Win实际上将CLR作为一个COM服务器实现在一个DLL内,即为CLR定义了标准的COM接口,并为该接口和COM服务器分配一GUID,安装FrameWork时表示CLR的COM服务器被注册到注册表内. ...

  2. C++头文件一览

    C++头文件一览 C.传统 C++ #include <assert.h> 设定插入点#include <ctype.h> 字符处理#include <errno.h&g ...

  3. 微信小程序 | 小程序的转发问题

    1.配置小程序页面静态转发信息 关于小程序转发问题,文档 在 page 页面填加了该监听函数,会在小程序右上角 ... 菜单中显示“转发”按钮: 监听函数需要 return {} 其中的内容配置转发信 ...

  4. firefox工具

    1.XPath 查看元素的xpath https://addons.mozilla.org/zh-CN/firefox/addon/xpath-checker/ 2. Tamper Data 查看页面 ...

  5. iOS原生数据存储策略

    一 @interface NSCache : NSObject Description A mutable collection you use to temporarily store transi ...

  6. CorelDRAW X6最新注册激活机制

    最近购买CorelDRAW X6的小伙伴可能对如何注册激活软件存在疑惑,下面小编一步步教您如何快速激活CorelDRAW X6. CorelDRAW X6最新注册机制如下: 1.关注“Corel服务中 ...

  7. 分清encodeURIComponent encodeURI 和 escape

    encodeURIComponent encodeURI escape 目的:这三个函数的作用都是让一段字符串在所有电脑(所有国家区域语言)上可读. escape对字符串进行处理: encodeURI ...

  8. 小学生都能学会的python(编码 and 字符串)

    小学生都能学会的python(编码 and 字符串) 一,编码 最早的计算机编码是ASCII. 有英文+数字+特殊字符 8bit => 1byte 没有中文, 后面的编码必须兼容ASCII    ...

  9. Cannot find a free socket for the debugger

    win + R 输入cmd netsh winsock reset 重启电脑,重启MyEclipse,可以正常Debug了. 部分电脑可以=============================== ...

  10. Mysql学习总结(35)——Mysql两千万数据优化及迁移

    最近有一张2000W条记录的数据表需要优化和迁移.2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升.不过这些数据有大量的冗余字段和错误信息,极不 ...