


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android Layout 之 RelativeLayout,代码实现相对布局作者:喜之郎常年担任java开发小组负责人使用 AbsoluteLayout 可以直接指定其子 View 的绝对位置, 这种布局方式虽然简单,但是不够灵活。比如在一个程序中,按钮2 位于 按钮1 的下方且和 按钮1 左对齐,我们可以使用指定两个按钮的绝对位置的方式布局,但是当布局完成后,由于某些原因,这两个按钮需要相左平移一些距离以便在父 View 右边留出一些空白区域,那么我们就需要同时修改 按钮1 和 按钮2 的 layout params。如果布局更复杂一些呢?这样“牵一发而动全身”的布局模式恐怕不是那么友好吧? RelativeLayout,顾名思义,就是以“相对”位置/对齐 为基础的布局方式。android.widget.RelativeLayout 有个 继承自android.view.ViewGroup.LayoutParams 的内嵌类 LayoutParams,使用这个类的实例调用 RelativeLayout.addView 就可以实现“相对布局”。android.widget.RelativeLayout.LayoutParams 有一个构造函数:RelativeLayout.LayoutParams(int w, int h),参数指定了子 View 的宽度和高度,这一点和其父类是一样的。而实现相对布局的关键在它的 两个 addRule 方法上。anchor 参数指定可以是 View 的 id(“相对于谁”)、RelativeLayout.TRUE(启用某种对齐方式) 或者 是-1(应用于某些不需要 anchor 的 verb);AddRule 方法的 verb 参数指定相对的“动作”(以下常量均定义于 android.widget.RelativeLayout中,为了简便不给出其全名):ALIGN_BOTTOM、ALIGN_LEFT、 ALIGN_RIGHT、 ALIGN_TOP: 本 View 的 底边/左边/右边/顶边 和 anchor 指定的 View 的 底边/左边/右边/顶边 对齐。 ALIGN_WITH_PARENT_BOTTOM 、ALIGN_WITH_PARENT_LEFT 、 ALIGN_WITH_PARENT_RIGHT 、 ALIGN_WITH_PARENT_TOP : 和上面一组常量类似,只不过不需要再指定 anchor, 其 anchor 自动为 Parent View。 CENTER_HORIZONTAL、CENTER_IN_PARENT 、CENTER_VERTICAL : 如果 anchor 为 TRUE,在 Parent 中 水平居中/水平和垂直均居中/垂直居中。 POSITION_ABOVE 、POSITION_BELOW 、 POSITION_TO_LEFT 、POSITION_TO_RIGHT : 本 View 位于 anchor 指定的 View 的 上边/下边/左边/右边。看一个例子:package com.farproc.RLTest;import android.app.Activity; import android.os.Bundle; import android.widget.*; import android.view.*;public class RLTest extends Activity private RelativeLayout rl; private Button btn1; private Button btn2; private Button btn3; private Button btn4; private static final int ID_BTN1 = 1; private static final int ID_BTN2 = 2; private static final int ID_BTN3 = 3; private static final int ID_BTN4 = 4; /* Called when the activity is first created. */ Override public void onCreate(Bundle icicle) super.onCreate(icicle); rl = new RelativeLayout(this); btn1 = new Button(this); btn1.setText(-); btn1.setId(ID_BTN1); RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp1.addRule(RelativeLayout.ALIGN_WITH_PARENT_TOP); lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); / btn1 位于父 View 的顶部,在父 View 中水平居中 rl.addView(btn1, lp1 ); btn2 = new Button(this); btn2.setText(|n|n|n|n|n|); btn2.setId(ID_BTN2); RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp2.addRule(RelativeLayout.POSITION_BELOW, ID_BTN1); lp2.addRule(RelativeLayout.ALIGN_LEFT, ID_BTN1); / btn2 位于 btn1 的下方、其左边和 btn1 的左边对齐 rl.addView(btn2, lp2); btn3 = new Button(this); btn3.setText(|n|n|n|n|n|); btn3.setId(ID_BTN3); RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp3.addRule(RelativeLayout.POSITION_BELOW, ID_BTN1); lp3.addRule(RelativeLayout.POSITION_TO_RIGHT, ID_BTN2); lp3.addRule(RelativeLayout.ALIGN_RIGHT, ID_BTN1); / btn3 位于 btn1 的下方、btn2 的右方且其右边和 btn1 的右边对齐(要扩充) rl.addView(btn3,lp3); btn4 = new Button(this); btn4.setText(-); btn4.setId(ID_BTN4); RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp4.addRule(RelativeLay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 惩罚学生的课件
- 口腔义诊知识培训课件
- 幼儿园中班健康教案《会吹气的膨化食品》
- 2025年高端商务楼全效物业运营与园林景观设计承揽合同
- 2025年主题酒店客房租赁与特色设施定制服务合同
- 2025年新型城镇化项目垃圾分类处理综合服务合同
- 2025年城市绿化工程专用特种车辆租赁与养护服务协议
- 2025年智能农机购置补贴贷款合同
- 2025年办事处综合服务合作合同模板及操作手册
- 高效物流运输及车辆运营维护咨询合作协议
- 采购询价单模板
- 新版译林高中英语必修一单词表默写版(直接打印)
- 人教版新起点小学英文1-6年级英语-单词表含音标-按课时
- 历史文化街区永庆坊微改造正式版广州规划局
- 25、古人谈读书预习单和作业纸
- 《联合国宪章》中文版
- 中国古典文献学(全套)
- 地基换填处理计算(2017版)
- NB∕T 13007-2021 生物柴油(BD100)原料 废弃油脂
- GB/T 11918.1-2014工业用插头插座和耦合器第1部分:通用要求
- 国家保安员资格考试培训教材
评论
0/150
提交评论