2014-05-06 84 views
2

我有這個佈局,帶有相對佈局的滾動視圖,我添加了滾動視圖,因爲在較小的設備上,RelativeLayout本身會切斷超過屏幕尺寸的部分佈局,因此任何大於屏幕高度不可見。ScrollView裏面的RelativeLayout擴展超過屏幕尺寸

我試着將RelativeLayout wrap_content添加到高度,但沒有修復它,所以我添加了scrollview,現在顯示了整個佈局,但是在像nexus 4那樣具有更大屏幕的設備上,相對佈局延伸到屏幕上高度,所以用戶必須滾動才能看到底部的textViews。

無論如何,我知道問題出在這個ImageView的有繪製:SRC = @繪製/背景

這迫使相對佈局會比屏幕的高度更多,我用centerCrop的圖像,的高度圖像是1200,而nexus 4的高度是1280,所以ImageView應該適合屏幕,但它會延伸整個佈局。黑線是aproximalty在屏幕兩端,並代替切割的ImageView在這一點上該點之後的RelativeLayout exapnds ...

sample layout image

如何能確保我的RelativeLayout不下去了屏幕高度在分辨率較高的設備上,但在較小的設備上包含滾動顯示不適合屏幕高度的內容?目前,我有滾動到她底部textViews上的所有設備..

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:background="@android:color/black" 
    android:fillViewport="true" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ImageView 
      android:id="@+id/bg" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:paddingLeft="-20dp" 
      android:scaleType="centerCrop" 
      android:src="@drawable/background" /> 

     <ImageView 
      android:id="@+id/trophystack" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:paddingTop="20dp" 
      android:scaleType="center" 
      android:src="@drawable/trophystack" /> 

     <LinearLayout 
      android:id="@+id/llTrophyStackLogin" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:orientation="vertical" 
      android:paddingBottom="20dp" 
      android:paddingTop="20dp" > 

      <EditText 
       android:id="@+id/email_address" 
       android:layout_width="250dp" 
       android:layout_height="70dp" 
       android:layout_marginBottom="2dp" 
       android:background="@android:color/white" 
       android:drawableLeft="@drawable/usericon2" 
       android:fontFamily="sans-serif" 
       android:gravity="center" 
       android:hint="[email protected]" 
       android:inputType="textEmailAddress" 
       android:minWidth="250dp" 
       android:tag="login_email" /> 

      <EditText 
       android:id="@+id/password" 
       android:layout_width="250dp" 
       android:layout_height="70dp" 
       android:background="@android:color/white" 
       android:drawableLeft="@drawable/lock" 
       android:gravity="center" 
       android:hint="********" 
       android:inputType="textPassword" 
       android:tag="login_password" /> 

      <Button 
       android:id="@+id/doLogin" 
       android:layout_width="250dp" 
       android:layout_height="70dp" 
       android:layout_marginTop="20dp" 
       android:background="@drawable/buttontexture1" 
       android:minWidth="200dp" 
       android:onClick="goQueue" 
       android:text="Sign In" 
       android:textColor="@android:color/white" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/forgot_password_text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginLeft="20dp" 
      android:text="Forgot password?" 
      android:textColor="#FFFFFF" 
      android:textSize="16dp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/sign_up_text2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginRight="20dp" 
      android:clickable="true" 
      android:text="Sign up" 
      android:textColor="@android:color/white" 
      android:textSize="19dp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/sign_up_text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginRight="2dp" 
      android:layout_toLeftOf="@id/sign_up_text2" 
      android:clickable="true" 
      android:text="New here?" 
      android:textColor="@android:color/white" 
      android:textSize="16dp" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@id/sign_up_text" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@id/llTrophyStackLogin" 
      android:background="#0000" 
      android:minHeight="50dp" 
      android:onClick="doSwipe" 
      android:textColor="@android:color/white" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignRight="@id/forgot_password_text" 
      android:layout_below="@id/llTrophyStackLogin" 
      android:background="#0000" 
      android:minHeight="50dp" 
      android:onClick="doForgotPassword" 
      android:textColor="@android:color/white" /> 
    </RelativeLayout> 

</ScrollView> 
+1

發佈您的佈局的屏幕截圖。 – GrIsHu

回答

1

ImageView刪除此行

android:src="@drawable/background" 

並將此作爲RelativeLayout背景。

android:background="@drawable/background" 
+0

我試過了,但圖像的縱橫比將是歪斜的,因爲在這種情況下,scaleType是fitXY – abdu

+0

如果不需要,您需要移除該ImageView。 – Piyush

+0

您還可以在線性佈局中添加ScrollView,然後爲其設置背景。 – Piyush