How to set weight for included layouts?

I have two xml files, a header and a footer, as shown below

header.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#9d1246" > <Button android:id="@+id/button_backfromreg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:background="@drawable/backbtn" android:visibility="visible" /> </LinearLayout> </LinearLayout> 

footer.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#9d1246" > </LinearLayout> </LinearLayout> 

I have included these two layouts in my mainlayout as shown

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eaedf2" android:orientation="vertical" > <include android:layout_weight="1" layout="@layout/header" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="30dp" android:layout_weight="1" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="Country" android:textColor="#655e5e" android:textSize="15sp" > <requestFocus /> </EditText> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="State" android:textColor="#655e5e" android:textSize="15sp" /> <EditText android:id="@+id/editText3" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="Place Keyword" android:textColor="#655e5e" android:textSize="15sp" /> </LinearLayout> <include android:layout_height="0dp" android:layout_weight="1" layout="@layout/footer" /> </LinearLayout> 

My problem is that using the above layout, I don't see the footer. Someone please help me. Thanks in advance.

+8
android android-layout weight android-layout-weight
source share
3 answers

Save the included layout in the container and set the weight attribute for that container only.

This is your updated layout.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eaedf2" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > <include android:layout_height="match_parent" android:layout_width="match_parent" layout="@layout/header" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="30dp" android:layout_weight="1" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="Country" android:textColor="#655e5e" android:textSize="15sp" > <requestFocus /> </EditText> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="State" android:textColor="#655e5e" android:textSize="15sp" /> <EditText android:id="@+id/editText3" android:layout_width="match_parent" android:layout_height="wrap_content" android:editable="false" android:ems="10" android:hint="Place Keyword" android:textColor="#655e5e" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > <include android:layout_height="match_parent" android:layout_width="match_parent" layout="@layout/footer" /> </LinearLayout> </LinearLayout> 
+15
source share

in the match_parent footer for height ..

 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#9d1246" > </LinearLayout> 
0
source share

Try this by providing weightSum = "3" parentLayout

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#eaedf2" android:orientation="vertical" android:weightSum="3" > 

Also add parameters to include

 <include android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" layout="@layout/header" /> <include android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" layout="@layout/footer" /> 

Hope this works

-2
source share

All Articles