欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android removeRule不可用

程序员文章站 2022-03-02 15:30:25
...

一、报错

因需求,需要在Java代码中动态地将android:layout_alignParentBottom设置为false,首先想到的是addRule和removeRule

RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) v.getLayoutParams();
rlp.remove(RelativeLayout.ALIGN_PARENT_BOTTOM);

但是remove下方会有红色波浪线,removeRule是API 17才加的方法,为了在API 17前也能使用,可以使用它的等价方法,使用addRule(verb, 0)


二、解决

RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) v.getLayoutParams();
rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);

所以,removeRule和addRule(verb, 0)在设置控件相对于父控件时的效果是一样的,都是移除控件的RelativeLayout.LayoutParams ,而且removeRule里面也是调用了addRule(verb, 0)的逻辑。所以大家移除属性时,最好使用addRule(verb, 0)。

就这么简单…
另外 所以 遇到问题时一定要先百度 因为这么点小问题去麻烦导师 现在想来很是羞愧!