Android基础篇 RelativeLayout.LayoutParams
Posted 彭老希
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android基础篇 RelativeLayout.LayoutParams相关的知识,希望对你有一定的参考价值。
一、前言
RelativeLayout.LayoutParams是一个RelativeLayout的布局参数
(1) 初始化
// 包裹内容 WRAP_CONTENT
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
// 全部内容 MATCH_PARENT
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);
(2)参数
new RelativeLayout.LayoutParams()
需要填写宽度和高度两个参数
二、方法属性
(1)addRule方法
addRule方法是我们最常用到的,动态设置控件的位置是一定要使用这个方法的。这个方法有两种方式
addRule(int verb) / addRule(int verb, int subject)
verb主要的参数有:
- ABOVE
上面 | 之上
- ALIGN_BASELINE
对齐 排列 对准 : 基线
- ALIGN_BOTTOM
对齐 :底部
- ALIGN_END
对齐末端/右边
- ALIGN_LEFT
对齐左边
- ALIGN_PARENT_BOTTOM
将子项的【底边】与其RelativeLayout【父项的底边】对齐的规则
- ALIGN_PARENT_END
将子项的【末端边缘】与其RelativeLayout【父项的末端】边缘对齐的规则
- ALIGN_PARENT_LEFT
将孩子的【左边缘】与其RelativeLayout【父对象的左边缘】对齐的规则
- ALIGN_PARENT_RIGHT
将孩子的【右边缘】与其RelativeLayout【父对象的右边缘】对齐的规则
- ALIGN_PARENT_START
将孩子的【起始边缘】与其RelativeLayou【t父对象的起始边缘】对齐的规则
- ALIGN_PARENT_TOP
使子项的上边缘与其RelativeLayout父项的上边缘对齐的规则
- ALIGN_RIGHT
将孩子的右边缘与另一个孩子的右边缘对齐的规则
- ALIGN_START
将一个孩子的起始边缘与另一个孩子的起始边缘对齐的规则
- ALIGN_TOP
将孩子的上边缘与另一个孩子的上边缘对齐的规则
- BELOW
将孩子的上边缘与另一个孩子的下边缘对齐的规则
- CENTER_HORIZONTAL
使子级相对于其RelativeLayout父级的边界水平居中的规则
- CENTER_IN_PARENT
使子项相对于其RelativeLayout父项的边界居中的规则
- CENTER_VERTICAL
使子项相对于其RelativeLayout父项的边界垂直居中的规则
- END_OF
将孩子的起始边缘与另一个孩子的终止边缘对齐的规则
- LEFT_OF
将孩子的右边缘与另一个孩子的左边缘对齐的规则
- RIGHT_OF
将孩子的左边缘与另一个孩子的右边缘对齐的规则
- START_OF
将孩子的末端边缘与另一个孩子的起始边缘对齐的规则
- TRUE
为真
subject参数是我们另外的控件ID。
setMargins(int left, int top, int right, int bottom)
当前控件设置边距,参数分别是左边,上边,右边,下边。单位是px。
setMarginStart(int start)
当前控件设置开始边距,国内默认是左边的边距
,单位是px。
setMarginEnd(int end)
当前控件设置结束边距,国内默认是右边的边距
,单位是px。
dp值转换方法
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
参考例子:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//参数一 传入位置值 参数二:参照物的id值
params .addRule(RelativeLayout.ABOVE,mTextView.getId());
// params .setMargins(0,dip2px(context,10),0,0);
// params .setMargins(0,dip2px(context,50),0,0);
mViewPager.setLayoutParams(params );
以上是关于Android基础篇 RelativeLayout.LayoutParams的主要内容,如果未能解决你的问题,请参考以下文章
Android开发基础之布局管理器RelativeLayout
幻化万千戏红尘qianfeng-Android-Day02-RelativeLayout布局TextViewEditTextimageView基础学习