2011-10-29 5 views
3

ScrollView内にRelativeLayoutがあります。小さな画面では、フォームの上部が切り取られます(下記のスクリーンショットをご覧ください)。私の特定の例では、ラベル "メール"は最初の画面(320x240)に完全に隠されています。ScrollView内にRelativeLayoutを配置した後、フォームの上部が切り取られます

修正方法はありますか?

p.s. UPD:フォームコントロールは垂直に中央に配置する必要があります。

Screenshot from different screen sizes

レイアウト:

<ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/relLayout1" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_gravity="center"> 
     <LinearLayout android:orientation="vertical" 
      android:layout_centerInParent="true" android:layout_width="fill_parent" 
      android:paddingLeft="10dip" android:paddingRight="10dip" 
      android:layout_gravity="center" android:layout_height="wrap_content"> 
      <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:id="@+id/lblName" android:text="@string/user_email"></TextView> 
      <EditText android:inputType="textEmailAddress" 
       android:layout_width="fill_parent" android:layout_height="wrap_content" 
       android:id="@+id/edEmail"> 
       <requestFocus></requestFocus> 
      </EditText> 
      <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:id="@+id/lblPassword" android:text="@string/user_password"></TextView> 
      <EditText android:layout_width="fill_parent" 
       android:layout_height="wrap_content" android:inputType="textPassword" 
       android:id="@+id/edPassword"></EditText> 
      <LinearLayout android:id="@+id/linearLayout3" 
       android:layout_width="fill_parent" android:layout_height="wrap_content"> 
       <CheckBox android:id="@+id/chkRememberMe" 
        android:layout_width="wrap_content" android:layout_height="wrap_content" 
        android:text="@string/remember_me"></CheckBox> 
      </LinearLayout> 
      <LinearLayout android:id="@+id/linearLayout2" 
       android:layout_width="wrap_content" android:layout_height="wrap_content" 
       android:layout_gravity="center_horizontal"> 
       <Button android:id="@+id/btnLogin" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:text="@string/login"></Button> 
       <Button android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:id="@+id/btnRegister" 
        android:text="@string/register"></Button> 
       <Button android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:text="@string/restore_password" 
        android:id="@+id/btnRestorePassword"></Button> 
      </LinearLayout> 
      <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
       android:layout_width="wrap_content" android:id="@+id/textView1" 
       android:layout_height="wrap_content" android:text="@string/register_prompt"></TextView> 
     </LinearLayout> 
    </RelativeLayout> 
</ScrollView> 

答えて

1

この

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" android:paddingLeft="10dip" 
     android:paddingRight="10dip" android:gravity="center"    
     android:layout_height="wrap_content"> 
     <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" 
      android:id="@+id/lblName" android:text="Email" android:gravity="left"/>   
     <EditText android:inputType="textEmailAddress" 
      android:layout_width="fill_parent" android:layout_height="wrap_content" 
      android:id="@+id/edEmail"> 
      <requestFocus></requestFocus> 
     </EditText> 
     <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:id="@+id/lblPassword" android:text="Password"></TextView> 
     <EditText android:layout_width="fill_parent" android:gravity="left" 
      android:layout_height="fill_parent" android:inputType="textPassword" 
      android:id="@+id/edPassword"></EditText> 
     <LinearLayout android:id="@+id/linearLayout3" 
      android:layout_width="fill_parent" android:layout_height="wrap_content"> 
      <CheckBox android:id="@+id/chkRememberMe" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Remeber Me"></CheckBox> 
     </LinearLayout> 
     <LinearLayout android:id="@+id/linearLayout2" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal"> 
      <Button android:id="@+id/btnLogin" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Login"></Button> 
      <Button android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:id="@+id/btnRegister" 
       android:text="Register"></Button> 
      <Button android:layout_width="wrap_content" 
       android:layout_height="wrap_content" android:text="Restore" 
       android:id="@+id/btnRestorePassword"></Button> 
     </LinearLayout> 
     <TextView android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_width="wrap_content" android:id="@+id/textView1" 
      android:layout_height="wrap_content" android:text="Register is a simple 
      login. Just enter username and password."></TextView> 
</LinearLayout> 

+0

を試してみて、それを解決しようといただきありがとうございます。申し訳ありませんが、私はコントロールが垂直にセンタリングされている必要があることを忘れていました。 –

+0

android:layout_gravity = "center_vertical"を外側の直線レイアウトに追加します。 – blessenm

関連する問題