全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年11月07日 遂宁市船山区考试中心 英力士 石化工艺工程师 17人
- 贵州省黔南州龙里县2025-2026学年五年级下学期期末检测科学试卷(有答案)
- 甘肃省定西市陇西县文峰中学2025-2026学年高一上学期期末考试化学试题(含答案)
- 2026-2027学年人教版八年级上册数学第一次月考重难点突破学情自测卷(含答案)
- 2026高血压患者季节交替谨防感冒课件
- 神经外科技术分享课件
- 2025-2026年广东省苏教版八年级语文第10课古诗文阅读练习题
- 过敏性紫癜症状注意事项
- 高中一年级心理教学设计:情绪调色板-情绪调适的艺术
- 小学五年级数学“圆的面积”教案
- 仓库尾货收购合同范本
- GB/T 20118-2025钢丝绳通用技术条件
- GB/T 46227-2025半导体单晶材料透过率测试方法
- 第十二届广东省安全知识竞赛暨粤港澳安全知识竞赛决赛备赛试题库(含答案)
- DB42∕T 2165-2023 《制浆造纸企业产生臭气处理工艺设计规范》
- 2025年公务员考试行测逻辑推理试题库及答案(共200题)
- 少先队活动课《民族团结一家亲-同心共筑中国梦》课件
- YDT 5206-2023宽带光纤接入工程技术规范
- 快速入门穿越机-让你迅速懂穿越机
- NB-T 47003.1-2022 常压容器 第1部分:钢制焊接常压容器
- 腐蚀与防护-第十四章-腐蚀控制方法
评论
0/150
提交评论