大家好,又见面了,我是你们的朋友全栈君。
前言
在日常的Android开发当中,我们少不了需要动态改变控件在RelativeLayout界面的位置。那么我们就需要使用到RelativeLayout.LayoutParams。
RelativeLayout.LayoutParams
RelativeLayout.LayoutParams是一个RelativeLayout的布局参数,我们改变控件的就需要使用到。
初始化
// 包裹内容
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
// 全部内容
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);
其中 new RelativeLayout.LayoutParams()
需要填写宽度和高度两个参数。
addRule方法
addRule方法是我们最常用到的,动态设置控件的位置是一定要使用这个方法的。这个方法有两种方式
addRule(int verb)
verb主要的参数有:
- ABOVE
- ALIGN_BASELINE
- ALIGN_BOTTOM
- ALIGN_END
- ALIGN_LEFT
- ALIGN_PARENT_BOTTOM
- ALIGN_PARENT_END
- ALIGN_PARENT_LEFT
- ALIGN_PARENT_RIGHT
- ALIGN_PARENT_START
- ALIGN_PARENT_TOP
- ALIGN_RIGHT
- ALIGN_START
- ALIGN_TOP
- BELOW
- CENTER_HORIZONTAL
- CENTER_IN_PARENT
- CENTER_VERTICAL
- END_OF
- LEFT_OF
- RIGHT_OF
- START_OF
- TRUE
addRule(int verb, int subject)
verb主要的参数有:
- ABOVE
- ALIGN_BASELINE
- ALIGN_BOTTOM
- ALIGN_END
- ALIGN_LEFT
- ALIGN_PARENT_BOTTOM
- ALIGN_PARENT_END
- ALIGN_PARENT_LEFT
- ALIGN_PARENT_RIGHT
- ALIGN_PARENT_START
- ALIGN_PARENT_TOP
- ALIGN_RIGHT
- ALIGN_START
- ALIGN_TOP
- BELOW
- CENTER_HORIZONTAL
- CENTER_IN_PARENT
- CENTER_VERTICAL
- 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。
总结
上述的内容是我阅读RelativeLayout.LayoutParams的源码结合实际开发经常用到的方法笔记。希望对看到这篇博客的小伙伴们有帮助。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160822.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...