I am having a problem in ScrollView. When i run my application on X10i it works fine but when i change the view to landscape half of the layout at the bottom (RelativeLayout) go down to the screen. Here is my Layout code. please suggest a general solution that will be applicable to all phones not only X10i.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
android:layout_marginBottom="50dip">
<ScrollView
android:id="@+id/ScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dip" >
<RelativeLayout
android:id="@+id/layoutR"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/galleryPic"
android:layout_width="140dip"
android:layout_height="175dip"
android:background="#ff666666" />
<TextView
android:id="@+id/lblmail"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dip"
android:text="E_mail:"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic" />
<EditText
android:id="@+id/txt_email"
android:layout_width="170dip"
android:layout_height="32dip"
android:layout_marginLeft="5dip"
android:hint="e-mail"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic"
android:layout_below="@+id/lblmail" />
<TextView
android:id="@+id/lblpass"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:layout_marginLeft="5dip"
android:text="Password:"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic"
android:layout_below="@+id/txt_email" />
<EditText
android:id="@+id/txt_pass"
android:layout_width="170dip"
android:layout_height="32dip"
android:password="true"
android:maxLines="1"
android:layout_marginLeft="5dip"
android:hint="password"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic"
android:layout_below="@+id/lblpass" />
<TextView
android:id="@+id/lblrepass"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:layout_marginLeft="5dip"
android:text="Re-Password:"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic"
android:layout_below="@+id/txt_pass" />
<EditText
android:id="@+id/txt_repass"
android:layout_width="170dip"
android:layout_height="32dip"
android:password="true"
android:maxLines="1"
android:layout_marginLeft="5dip"
android:hint="re-password"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/galleryPic"
android:layout_below="@+id/lblrepass" />
<Button
android:id="@+id/btn_Gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:typeface="serif"
android:textStyle="bold"
android:text="Browse"
android:layout_below="@+id/galleryPic" />
<TextView
android:id="@+id/lblname"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Name:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="6dip"
android:layout_below="@+id/btn_Gallery" />
<EditText
android:id="@+id/txt_name"
android:layout_width="224dip"
android:layout_height="32dip"
android:hint="name"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="3dip"
android:layout_toRightOf="@+id/lblname"
android:layout_below="@+id/btn_Gallery"
android:layout_marginLeft="5dip" />
<TextView
android:id="@+id/lblage"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Age:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="9dip"
android:layout_below="@+id/lblname" />
<EditText
android:id="@+id/txt_age"
android:layout_width="225dip"
android:layout_height="32dip"
android:hint="age"
android:numeric="integer"
android:maxLines="1"
android:maxLength="3"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lblage"
android:layout_below="@+id/txt_name"
android:layout_marginLeft="19dip" />
<TextView
android:id="@+id/lblsex"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Sex:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="12dip"
android:layout_below="@+id/lblage" />
<EditText
android:id="@+id/txt_sex"
android:layout_width="226dip"
android:layout_height="32dip"
android:hint="sex"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lblsex"
android:layout_below="@+id/txt_age"
android:layout_marginLeft="20dip" />
<TextView
android:id="@+id/lbllocation"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Location:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="12dip"
android:layout_below="@+id/lblsex" />
<EditText
android:id="@+id/txt_location"
android:layout_width="206dip"
android:layout_height="32dip"
android:hint="location"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lbllocation"
android:layout_below="@+id/txt_sex"
android:layout_marginLeft="5dip" />
<TextView
android:id="@+id/lblstatus"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Status:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="12dip"
android:layout_below="@+id/lbllocation" />
<EditText
android:id="@+id/txt_status"
android:layout_width="225dip"
android:layout_height="32dip"
android:hint="status"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lblstatus"
android:layout_below="@+id/txt_location"
android:layout_marginLeft="5dip" />
<TextView
android:id="@+id/lblinterest"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Interest:"
android:typeface="serif" android:textStyle="bold"
android:layout_marginTop="12dip"
android:layout_below="@+id/lblstatus" />
<EditText
android:id="@+id/txt_interest"
android:layout_width="212dip"
android:layout_height="32dip"
android:hint="interest"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lblinterest"
android:layout_below="@+id/txt_status"
android:layout_marginLeft="5dip" />
<TextView
android:id="@+id/lblorientation"
android:layout_width="wrap_content"
android:layout_height="21dip"
android:text="Orientation:"
android:typeface="serif"
android:textStyle="bold"
android:layout_marginTop="12dip"
android:layout_below="@+id/lblinterest" />
<EditText
android:id="@+id/txt_orientation"
android:layout_width="187dip"
android:layout_height="32dip"
android:hint="status"
android:maxLines="1"
android:textSize="10sp"
android:typeface="serif"
android:textStyle="bold"
android:layout_toRightOf="@+id/lblorientation"
android:layout_below="@+id/txt_interest"
android:layout_marginLeft="5dip"/></RelativeLayout></ScrollView>
<RelativeLayout
android:layout_marginTop="-32dip"
android:gravity="bottom"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:background="#ff999999">
<Button
android:id="@+id/btnNext"
android:layout_width="100dip"
android:layout_height="45dip"
android:text="Next"
android:layout_marginTop="2dip"
android:layout_alignParentRight="true"/></RelativeLayout></LinearLayout>
That’s a lot of XML. O_o
Creating two separate layouts really shouldn’t be necessary to fix the problem you’re having. Here is what I would suggest (I’m cutting out the intermediate TextViews, just to shorten the example):
Basically, putting the whole thing into a RelativeLayout set to
fill_parent. Define your footer (with the “Next” button) first, and align it to the bottom right. Next, define your ScrollView set tofill_parentas well, and aligned above your footer (this will make the ScrollView fill all available space remaining after the footer is defined). And of course, place all your TextViews and EditTexts, etc., back into that RelativeLayout. I’m not able to test this right now, but it should get you fairly close.