Home » Android » Android – How do I specify weight programmatically for a RelativeLayout?

Android – How do I specify weight programmatically for a RelativeLayout?

Posted by: admin June 15, 2020 Leave a comment

Questions:

I want to do something like this programmatically –

<LinearLayout>
  <RelativeLayout1 weight = 1>
  <RelativeLayout2 weight = 3>
  <RelativeLayout3 weight = 1>
<LinearLayout>

It does not let me do a setWeight programmatically. However, I do see that RelativeLayout has an android:layout_weight parameter in XML. Am I missing something?

How to&Answers:

When you add the RelativeLayout to the LinearLayout using addView you have to provide a LinearLayout.LayoutParams, something like this :

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height, weight);
linearLayout.addView(relativeLayout, params);

Reference here