2010-10-19 38 views
0

我在ScrollView有問題。當我在X10i上運行我的應用程序時,它工作正常,但是當我將視圖更改爲橫向佈局的底部(RelativeLayout)的一半時,請進入屏幕。這是我的佈局代碼。請提出一個適用於所有手機的通用解決方案,不僅適用於X10i。android scrollView不能對齊屏幕風景視圖

<?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> 

回答

2

這是很多XML。 O_o

創建兩個單獨的佈局確實不應該是必要的,以解決您遇到的問題。這裏是我的建議(我切割出中間TextViews,只是爲了縮短爲例):

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    > 
    <RelativeLayout 
     android:id="@+id/footer" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:background="#ff999999" 
    android:layout_alignParentBottom="true" 
     > 
     <Button 
      android:id="@+id/btnNext" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Next" 
      android:layout_marginTop="2dip" /> 
    </RelativeLayout> 

    <ScrollView 
     android:id="@+id/ScrollView" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_marginTop="2dip" 
     android:layout_above="@id/footer" 
      android:layout_alignParentTop="true" 
     > 
     <RelativeLayout 
      android:id="@+id/layoutR" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      > 

     //XML removed for ease of viewing 

     </RelativeLayout> 
    </ScrollView>  
</RelativeLayout> 

基本上把整個事情到設置了一個fill_parent RelativeLayout的。首先定義頁腳(使用「下一步」按鈕),並將其與右下角對齊。接下來,將您的ScrollView也設置爲fill_parent,並且在頁腳上方對齊(這將使ScrollView在頁腳定義後填充剩餘的所有可用空間)。當然,將所有的TextViews和EditTexts等放回到RelativeLayout中。我現在無法對此進行測試,但它應該讓你相當接近。

+0

我已經做了它,但現在的RelativeLayout(頁腳)是最上面,沒有scrollView。請嘗試在您的系統上運行它。 – SilentCoder 2010-10-19 17:27:25

+0

再試一次。我只是做了一些改變,我會誤將alignParent *語句放在按鈕上而不是RelativeLayout中。 – kcoppock 2010-10-19 17:42:23

+0

你是天才:)非常感謝你的幫助。 – SilentCoder 2010-10-19 17:58:57

1

使用兩種不同的佈局,一種用於肖像和一種用於景觀。

就像在工作區中有一個佈局文件夾一樣。創建一個layout-land文件夾,將xml複製到具有相同名稱的新文件夾中,然後對其進行修改,以查看您希望如何操作。 換句話說,如果你的xml被稱爲main.xml,你將在layout中有一個main.xml,在layout-land中有一個。

Android將足夠聰明,可以根據方向選擇適合的佈局。

+1

任何其他解決方案,而不是這個?還有一件事情,如果屏幕尺寸增加或減少,它會起作用,因爲所有手機都有不同的屏幕尺寸。 – SilentCoder 2010-10-19 17:38:16

+0

閱讀這個,它應該回答你的問題。 http://developer.android.com/guide/practices/screens_support.html – blindstuff 2010-10-19 17:45:21

相關問題