Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LinearLayout with LayoutWeight not working

I have the following layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/color_brand"
                android:weightSum="100">

    <LinearLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="40"
        android:background="@color/color_white">

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp"
            />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/middle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="20"
        android:background="@color/color_black"
        android:layout_below="@id/top">

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/bottom"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="40"
        android:background="@color/color_white"
        android:layout_below="@id/middle">

        <View
            android:layout_width="match_parent"
            android:layout_height="10dp"/>

    </LinearLayout>

</RelativeLayout>

I want a 40-20-40 split between the layouts, and I've tried everything, but nothing seems to work. I've tried adding an empty view in the linear layouts, I've given the views in the linear layout the weight, but nothing is working. Can someone point out what I'm doing wrong?

like image 296
BlackHatSamurai Avatar asked Apr 18 '26 18:04

BlackHatSamurai


1 Answers

Change your main root parent to LinearLayout and give it a vertical orientation. RelativeLayout don't support weightsum, as you see in your code you are defining 0dp for height so you have to make your root view LinearLayout with vertical orientation to make weightage work.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/color_brand"
            android:weightSum="100">

     --------
</LinearLayout>
like image 152
Rahul Avatar answered Apr 21 '26 07:04

Rahul