用代码设置 RelativeLayout.LayoutParams

用代码设置 RelativeLayout.LayoutParams1.注意不能在RelativeLayout容器本身和他的子元素之间产生循环依赖,比如说,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为ALIGN_PARENT_BOTTOM。如果parent是wrap_content的话,alignParentRight就意味着要求parent的layout_width=”match_par…

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

1.注意

  • 不能在RelativeLayout容器本身和他的子元素之间产生循环依赖,比如说,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为 ALIGN_PARENT_BOTTOM。
  • 如果parent是wrap_content的话,alignParentRight就意味着要求parent的layout_width="match_parent"; alignParentBottom就意味着要求parent的layout_height="match_parent"

  等等。

2.用代码设置 RelativeLayout.LayoutParams

 1         RelativeLayout.LayoutParams params3 = (RelativeLayout.LayoutParams) holder.layout.getLayoutParams();
 2 
 3         //如果之前设置了rule,同时设置了多个rules可能冲突,下面代码清空rules
 4         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
   
   // >= 17
 5             params3.removeRule(RelativeLayout.RIGHT_OF);
 6         }else{
 7             int rules[] = params3.getRules();
 8             rules[RelativeLayout.LEFT_OF] = 0;
 9             rules[RelativeLayout.RIGHT_OF] = 0;
10         }
11         //添加新的rules,一般刚创建RelativeLayout.LayoutParams时,不要添加任何rule
12         if (mb.contact.isSelf()) {
13             params3.addRule(RelativeLayout.LEFT_OF,R.id.msg_portrait);
14         }else{
15             params3.addRule(RelativeLayout.RIGHT_OF,R.id.msg_portrait);
16         }
17         holder.layout.setLayoutParams(params3);

3.常用的rule

  1     /**
  2      * Rule that aligns a child's right edge with another child's left edge.
  3      */
  4     public static final int LEFT_OF                  = 0;
  5     /**
  6      * Rule that aligns a child's left edge with another child's right edge.
  7      */
  8     public static final int RIGHT_OF                 = 1;
  9     /**
 10      * Rule that aligns a child's bottom edge with another child's top edge.
 11      */
 12     public static final int ABOVE                    = 2;
 13     /**
 14      * Rule that aligns a child's top edge with another child's bottom edge.
 15      */
 16     public static final int BELOW                    = 3;
 17 
 18     /**
 19      * Rule that aligns a child's baseline with another child's baseline.
 20      */
 21     public static final int ALIGN_BASELINE           = 4;
 22     /**
 23      * Rule that aligns a child's left edge with another child's left edge.
 24      */
 25     public static final int ALIGN_LEFT               = 5;
 26     /**
 27      * Rule that aligns a child's top edge with another child's top edge.
 28      */
 29     public static final int ALIGN_TOP                = 6;
 30     /**
 31      * Rule that aligns a child's right edge with another child's right edge.
 32      */
 33     public static final int ALIGN_RIGHT              = 7;
 34     /**
 35      * Rule that aligns a child's bottom edge with another child's bottom edge.
 36      */
 37     public static final int ALIGN_BOTTOM             = 8;
 38 
 39     /**
 40      * Rule that aligns the child's left edge with its RelativeLayout
 41      * parent's left edge.
 42      */
 43     public static final int ALIGN_PARENT_LEFT        = 9;
 44     /**
 45      * Rule that aligns the child's top edge with its RelativeLayout
 46      * parent's top edge.
 47      */
 48     public static final int ALIGN_PARENT_TOP         = 10;
 49     /**
 50      * Rule that aligns the child's right edge with its RelativeLayout
 51      * parent's right edge.
 52      */
 53     public static final int ALIGN_PARENT_RIGHT       = 11;
 54     /**
 55      * Rule that aligns the child's bottom edge with its RelativeLayout
 56      * parent's bottom edge.
 57      */
 58     public static final int ALIGN_PARENT_BOTTOM      = 12;
 59 
 60     /**
 61      * Rule that centers the child with respect to the bounds of its
 62      * RelativeLayout parent.
 63      */
 64     public static final int CENTER_IN_PARENT         = 13;
 65     /**
 66      * Rule that centers the child horizontally with respect to the
 67      * bounds of its RelativeLayout parent.
 68      */
 69     public static final int CENTER_HORIZONTAL        = 14;
 70     /**
 71      * Rule that centers the child vertically with respect to the
 72      * bounds of its RelativeLayout parent.
 73      */
 74     public static final int CENTER_VERTICAL          = 15;
 75     /**
 76      * Rule that aligns a child's end edge with another child's start edge.
 77      */
 78     public static final int START_OF                 = 16;
 79     /**
 80      * Rule that aligns a child's start edge with another child's end edge.
 81      */
 82     public static final int END_OF                   = 17;
 83     /**
 84      * Rule that aligns a child's start edge with another child's start edge.
 85      */
 86     public static final int ALIGN_START              = 18;
 87     /**
 88      * Rule that aligns a child's end edge with another child's end edge.
 89      */
 90     public static final int ALIGN_END                = 19;
 91     /**
 92      * Rule that aligns the child's start edge with its RelativeLayout
 93      * parent's start edge.
 94      */
 95     public static final int ALIGN_PARENT_START       = 20;
 96     /**
 97      * Rule that aligns the child's end edge with its RelativeLayout
 98      * parent's end edge.
 99      */
100     public static final int ALIGN_PARENT_END         = 21;

 

转载于:https://www.cnblogs.com/sjjg/p/5807746.html

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 定时任务30秒执行一次_windows查看计划任务

    定时任务30秒执行一次_windows查看计划任务《定时执行专家》是一款制作精良、功能全面、使用简单的专业定时执行工具软件。支持18种任务类型,11种任务触发方式(包含Cron方式),触发精度达到“秒”级。软件无需安装,无使用时间限制,欢迎下载使用。软件使用Unicode编码,可以在英文、日文等所有外文Windows系统下正常使用,并且软件带有中、日、英多国语言界面版本,可自由切换。…

    2022年9月4日
  • php上位机,OV7670摄像头上位机软件源码

    php上位机,OV7670摄像头上位机软件源码【实例简介】OV7670摄像头上位机软件,使用QT编写,通过CY7C68013传输数据,上位机发送数据,然后下位机上传一帧图像。整套系统需要上位机软件,CY7C68013程序,FPGA程序。这个是上位机软件的源代码,原来上次的exe文件很多人说不会用,所以重新上传源代码,再不会用,我也没法子了。【实例截图】【核心代码】CMOS└──CMOS├──CMOS.pro├──CMOS.pro.use…

    2022年5月30日
  • ecshop彻底去版权把信息修改成自己的全教程

    ecshop彻底去版权把信息修改成自己的全教程前台部分:一、去掉头部title部分的ECSHOP演示站-Poweredbyecshop1、问题:“ECSHOP演示站”方法:在后台商店设置–商店标题修改2、问题:“Poweredby

    2022年7月2日
  • pip 更新命令

    pip 更新命令 pip查询版本:pipshowpip 或pip-Vanaconda更新命令:condainstallmingwlibpythonNomodulenamedpip问题:运行 python-mensurepipNomodulenamed’pip._internal’问题:windows下curlhttps://bootstr…

    2022年6月11日
  • FastCGI的认识与使用[通俗易懂]

    FastCGI的认识与使用[通俗易懂]01.CGI1.1什么是CGI通用网关接口(CommonGatewayInterface、CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI独立于任何语言的,CGI程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。Unixshellscript、Python、Ruby、…

    2022年7月11日
  • golang 设置ip地址_post请求header设置

    golang 设置ip地址_post请求header设置直接贴代码packagemainimport( “io” “net/http” “encoding/json”)typeKPIstruct{ Fziint`json:”fenzi”`//分子 Fmuint `json:”fenmu”` //分母}funckpi(whttp.ResponseWriter,r*http.Request){ kk…

    2022年8月24日

发表回复

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

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