You can't remove a rule because all rules are always stored in a fixed-size java array. But you can set a rule to 0
. For example
layoutParams.addRule(RelativeLayout.RIGHT_OF, 0);
layoutParams.addRule(RelativeLayout.BELOW, R.id.new_ref_LinearLayout);
EDIT (thanks to Roger Rapid):
As of API level 17, the class RelativeLayout.LayoutParams
has the following method:
public void removeRule(int verb)
So you can remove a rule using the following line of code:
layoutParams.removeRule(RelativeLayout.RIGHT_OF);
And you will get exactly the same result as when 'adding' a zero-rule as:
layoutParams.addRule(RelativeLayout.RIGHT_OF, 0);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…