Android基础篇 RelativeLayout.LayoutParams

Android基础篇 RelativeLayout.LayoutParams一、前言RelativeLayout.LayoutParams是一个RelativeLayout的布局参数(1)初始化//包裹内容WRAP_CONTENTRelativeLayout.LayoutParamslayoutParams=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);//全部内容M

大家好,又见面了,我是你们的朋友全栈君。

一、前言

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 );
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160824.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月17日 上午10:16
下一篇 2022年7月17日 上午10:16


相关推荐

  • 22款终端生产力工具,效率飞起!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 译文:switowski.com/blog/favorite-cli-tools 程序员在搞开发时,终端CLI工具的…

    2021年6月26日
    81
  • java0-1背包回溯法代码_0-1背包问题回溯法

    java0-1背包回溯法代码_0-1背包问题回溯法回溯法 0 1 背包问题是回溯法中的子集选取问题 0 1 背包问题的解空间可以用子集树来表示 设 cw 为当前重量 w 为每个物品的重量 在搜索解空间树时 只要其左儿子结点是一个可行结点 即当前重量加该结点的重量小于等于背包容量 cw w i lt c 搜索就进入其左子树 设上界函数为 Bound inti 当前最优值为 bestp 当右子树中有可能包含最优解时才进入右子树搜索 否则将右子树剪去

    2026年3月26日
    3
  • LeetCode77:Combinations[通俗易懂]

    LeetCode77:Combinations

    2022年1月24日
    50
  • Matlab中lsim函数使用

    Matlab中lsim函数使用lsim函数:lsim函数是针对线性时不变模型,给定任意输入,得到任意输出。lsim函数表示任意输入函数的响应,连续系统对任意输入函数的响应可以利用lsim函数求取。语法(常用):1.分子分母形式lsim(num,den,u,t)2.传递函数形式lsim(sys,u,t)3.状态空间形式lsim(A,B,C,D,u,t)其中,u为由给定输入序列构成的矩阵,它的每列对应一个输入,每行对应一个新的时间点,其行数与时间t的长度相等,其它的用法与step函数相同。…

    2022年7月17日
    140
  • drupal安装心得

    drupal安装心得一转眼,原来发现自己两个月没有写blog,。其实这两个月做了很多东西,但细想却没有什么值得拿出来和大家分享。前几天公司的bbs倒了,于是想重装一个类似于blog或者论坛之类的东西。由于IT的同事只熟悉PHP,于是到处找php的建站资源。后来nomad介绍drupal,Rayman也说这个不错,于是就尝试安装一个。网上的资料基本都是Linux下的安装过程介绍,几个rpm装好apache/mysql/

    2022年7月20日
    14
  • 一阶倒立摆的PID_简单旋转装置

    一阶倒立摆的PID_简单旋转装置  我做PID算法的背景和经历:本人电子信息科学与技术专业,现在是一名大三的学生,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系统,还不懂PID是个什么玩意,老师让我把PID加到这个题目里。当时给了一些电子版的一些教程,但是没看懂。。。。。。。后来对四旋翼很感兴趣,想弄一架玩玩再亲自写程序做一架,买了PI…

    2022年8月18日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号