在代码里面设置组件的相对位置
来源:互联网 发布:软件系统分为 编辑:程序博客网 时间:2024/05/17 03:50
有时候需要在代码里创建组件,尤其是在相对布局中需要设置组件之间的相对位置,包括组件相对父容器的位置,组件之间的位置,至于组件内部排列方式是可以用setGravity来实现的。下面针对前两种情况进行浅析,代码如下:
package com.home.testlayoutparams;import android.os.Bundle;import android.view.ViewGroup;import android.widget.Button;import android.widget.RelativeLayout;import android.app.Activity;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);RelativeLayout reLayout = new RelativeLayout(this);// 情况一:设置组件相对于父容器的位置// 按钮一Button btn1 = new Button(this);btn1.setText("按鈕1,父容器顶部水平居中");// 设置IDbtn1.setId(1);// 参数RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);// 设置额外参数规则,位于父View顶部lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);// 相对于父View水平居中lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);reLayout.addView(btn1, lp1);// 情况二:同级组件之间相对位置// 按钮二Button btn2 = new Button(this);btn2.setText("按鈕2,位于按钮一的下方左对齐");RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);// 位于按钮一的下方lp2.addRule(RelativeLayout.BELOW, 1);// 相对于按钮一左对齐lp2.addRule(RelativeLayout.ALIGN_LEFT, 1);reLayout.addView(btn2, lp2);setContentView(reLayout);}}
注:上面的addRule(verb, anchor)方法,verb指定相对的“动作”或“行为”。anchor指定相对于“谁”。
1、如果是相对于父容器的话,anchor参数可以不要直接使用addRule(verb)。或者设置RelativeLayout.TRUE(它的值就是-1)。
2、如果是相对于同级控件的话,anchor参数为那个要相对的控件的ID。
3、如果anchor参数为0的话,表示这个规则不会运用到该控件的布局中。
另外将其余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
RelativeLayout.BELOW
RelativeLayout.LEFT_OF
RelativeLayout.RIGHT_OF
RelativeLayout.ALIGN_TOP
RelativeLayout.ALIGN_BOTTOM
RelativeLayout.ALIGN_LEFT
RelativeLayout.ALIGN_RIGHT
RelativeLayout.ALIGN_BASELINE
- 在代码里面设置组件的相对位置
- /NOENTRY在VS里面的设置位置
- 代码中动态设置相对布局里控件的位置
- 代码设置RelativeLayout相对位置设置
- 获取鼠标在div中的相对位置的实现代码
- 动态代码中设置控件相对位置
- 如何将当前界面的可视组件以同样的相对位置和大小保存在png图像文件中?要求写出实践的代码。
- 在grade.properties里面设置签名位置
- 设置两个界面的相对位置
- 设置控件与控件的相对位置
- 在代码中设置组件的属性
- 相对布局的各个位置代码
- 相对布局设置位置
- 设置div相对位置
- CSS设置组件的位置
- html中多个div嵌套时div在上一级中的相对位置的设置
- Android 在代码中设置控件在RelativeLayout的位置
- Canvas 设置里面的元素位置
- AD6使用若干使用中的11个技巧
- 深复制、浅复制、retain
- mysql root密码修复
- C++代码,数据结构-最小生成树的两个算法,Prime&Kruskal
- error: more than one device and emulator .
- 在代码里面设置组件的相对位置
- 操作系统课堂笔记(5)存储管理
- 程序两种空间的切换
- 跟我一起写 Makefile(十四)
- 使用Google Weather API查询天气预报
- Windows服务
- Android AIDL简单例子
- platform_device与platform_driver
- centOS下安装mysql workbench详细步骤