Linear Layout and weight in Android Linear Layout and weight in Android android android

Linear Layout and weight in Android


3 things to remember:

  • set the android:layout_width of the children to "0dp"
  • set the android:weightSum of the parent(edit: as Jason Moore noticed, this attribute is optional, because by default it is set to the children's layout_weight sum)
  • set the android:layout_weight of each child proportionally (e.g. weightSum="5", three children: layout_weight="1", layout_weight="3", layout_weight="1")

Example:

<LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:weightSum="5">    <Button        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="1" />    <Button        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="3"        android:text="2" />    <Button        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:text="3" /></LinearLayout>

And the result:

Layout weight example


You are not setting the layout_weight property. Your code reads weight="1" and it should read android:layout_weight="1".


It's android:layout_weight. Weight can only be used in LinearLayout. If the orientation of linearlayout is Vertical, then use android:layout_height="0dp" and if the orientation is horizontal, then use android:layout_width = "0dp". It'll work perfectly.