How to programmatically set the layout_align_parent_right attribute of a Button in Relative Layout? How to programmatically set the layout_align_parent_right attribute of a Button in Relative Layout? android android

How to programmatically set the layout_align_parent_right attribute of a Button in Relative Layout?


You can access any LayoutParams from code using View.getLayoutParams. You just have to be very aware of what LayoutParams your accessing. This is normally achieved by checking the containing ViewGroup if it has a LayoutParams inner child then that's the one you should use. In your case it's RelativeLayout.LayoutParams. You'll be using RelativeLayout.LayoutParams#addRule(int verb) and RelativeLayout.LayoutParams#addRule(int verb, int anchor)

You can get to it via code:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)button.getLayoutParams();params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);button.setLayoutParams(params); //causes layout update


  1. you need to create and id for thebuttons you need to refference:btn1.setId(1);
  2. you can use the params variable toadd parameters to your layout, ithink the method is addRule(), checkout the android java docs for thisLayoutParams object.


For adding a RelativeLayout attribute whose value is true or false use 0 for false and RelativeLayout.TRUE for true:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) button.getLayoutParams()params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE)

It doesn't matter whether or not the attribute was already added, you still use addRule(verb, subject) to enable/disable it. However, post-API 17 you can use removeRule(verb) which is just a shortcut for addRule(verb, 0).