用代码设置 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ROC曲线的含义以及画法

    ROC曲线的含义以及画法**ROC的含义及画法**ROC的全名叫做ReceiverOperatingCharacteristic(受试者工作特征曲线),又称为感受性曲线(sensitivitycurve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。其主要分析工具是一个画在二维平面上的曲线——ROC曲线。ROC曲线以真正例率TPR为纵轴,以假正例率FPR为横轴,在不同的阈值下获得坐标点,并连接各个坐标点,得到ROC曲线。对于一个分类任务

    2022年5月16日
    31
  • mysql jdbc url设置时区

    mysql jdbc url设置时区jdbcurljdbc:mysql://59.110.137.112:3306/answer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true设置时区设置时区时,添加serverTimezone参数,比如serverTimezone

    2022年7月17日
    82
  • 利用nginx搭建RTMP视频点播、直播、HLS服务器

    利用nginx搭建RTMP视频点播、直播、HLS服务器开发环境Ubuntu14.04servernginx-1.8.1nginx-rtmp-modulenginx的服务器的搭建安装nginx的依赖库sudoapt-getupdatesudoapt-getinstalllibpcre3libpcre3-devsudoapt-getinstallopenssllibssl-dev配置并编译nginx使用nginx的默

    2022年6月13日
    25
  • 广东地区电信官方DNS服务器

    广东地区电信官方DNS服务器以下是广东地区电信官方DNS服务器,简单记录,以备后用!主解析服务器:202.96.128.143202.96.128.68202.105.80.210缓存服务器(亦可作DNS解析之用)cache-b

    2022年7月4日
    57
  • intellijidea激活码2021【2021免费激活】

    (intellijidea激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S…

    2022年3月26日
    67
  • Node.js异步处理CPU密集型任务

    Node.js异步处理CPU密集型任务

    2021年11月29日
    66

发表回复

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

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