2011-04-29 106 views
0

我正在嘗試使屏幕適合水平方向的垂直方向滾動,因爲它不適合並且不滾動。我添加了一個滾動視圖,其中包含線性佈局的單個子視圖和我想要的視圖。沒有錯誤,但是當我將手機調到水平方向時,它仍然不滾動。我究竟做錯了什麼?下面是我的XML無法滾動工作

感謝

<TextView 
android:text="test App" 
android:textSize="20dp" 
android:layout_gravity="center_horizontal" 
android:textColor="#FCFCFC" 
android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
></TextView> 

<TextView 
android:text="" 
android:textSize="20dp" 
android:layout_gravity="center_horizontal" 
android:textColor="#FCFCFC" 
android:id="@+id/textView3" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
></TextView> 


<ScrollView 
android:layout_width="match_parent" 
android:layout_height="400dp" 
> 

<LinearLayout 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 



<TextView 
android:text="Last Name" 
android:textSize="15dp" 
android:id="@+id/textView4" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#FCFCFC" 
android:singleLine="true" 
></TextView> 



<EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText1" 
android:layout_height="wrap_content" 
android:text="" 
android:singleLine="true" 
></EditText> 


<TextView 
android:text="" 
android:textSize="10dp" 
android:layout_gravity="center_horizontal" 
android:id="@+id/textView5" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
></TextView> 


<TextView 
android:text="First Name" 
android:textSize="15dp" 
android:id="@+id/textView6" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#FCFCFC" 
android:singleLine="true" 
></TextView> 

<EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText2" 
android:layout_height="wrap_content" 
android:text="" 
android:textSize="20dp" 
android:singleLine="true" 
></EditText> 


<TextView 
android:layout_gravity="center_horizontal" 
android:text="" 
android:textSize="15dp" 
android:layout_width="wrap_content" 
android:id="@+id/TextView01" 
android:layout_height="wrap_content" 
></TextView> 

<TextView 
android:text="Description" 
android:textSize="15dp" 
android:id="@+id/textView4" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textColor="#FCFCFC" 
android:singleLine="true" 
></TextView> 


<EditText 
android:layout_width="fill_parent" 
android:id="@+id/editText1" 
android:layout_height="wrap_content" 
android:text="" 
android:textSize="15dp" 
android:singleLine="false" 
android:lines="10" 
></EditText> 



</LinearLayout> 
</ScrollView> 




<TextView 
android:layout_gravity="center_horizontal" 
android:text="" 
android:id="@+id/TextView02" 
android:textColor="#FCFCFC" 
android:textSize="5dp" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
></TextView> 


<Button 
android:text="Next" 
android:textSize="20dp" 
android:layout_gravity="center_horizontal" 
android:id="@+id/nextpage" 
android:layout_width="150dp" 
android:layout_height="60dp" 
android:layout_alignParentBottom="true" 
></Button> 

+0

在滾動視圖中刪除dang「400dp」定義的高度。使它成爲'match_parent'。 – binnyb 2011-04-29 21:37:16

回答

1

ScrollView和它的內容都是一樣的尺寸。視圖佈局不關注它是否在屏幕上可見。目前,佈局中的最後一個TextViewButton可能也隱藏在lanscape模式下(我假設所有這些都被包裝在根目錄LinearLayout中,因爲根標記丟失)。 ScrollView只是說,「如果我的內容比我大,我會滾動它們」。

您應該考慮一種佈局,其中您的頂部元素懸掛在頂部,底部的兩個元素懸掛在底部,並且滾動視圖會填充它們之間的空間。這樣,當涉及到橫向時,視圖會更小,並且內容將開始滾動。

這裏就是我想你想:)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <!-- Top Elements --> 
    <TextView 
    android:text="test App" 
    android:textSize="20dp" 
    android:layout_gravity="center_horizontal" 
    android:textColor="#FCFCFC" 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
    <TextView 
    android:text="" 
    android:textSize="20dp" 
    android:layout_gravity="center_horizontal" 
    android:textColor="#FCFCFC" 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textView1" /> 

    <!-- Bottom Elements --> 
    <Button 
    android:text="Next" 
    android:textSize="20dp" 
    android:layout_gravity="center_horizontal" 
    android:id="@+id/nextpage" 
    android:layout_width="150dp" 
    android:layout_height="60dp" 
    android:layout_alignParentBottom="true" /> 
    <TextView 
    android:layout_gravity="center_horizontal" 
    android:text="" 
    android:id="@+id/TextView02" 
    android:textColor="#FCFCFC" 
    android:textSize="5dp" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_above="@id/nextpage" /> 

    <ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/textView3" 
    android:layout_above="@id/TextView02"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <TextView 
     android:text="Last Name" 
     android:textSize="15dp" 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#FCFCFC" 
     android:singleLine="true" /> 
     <EditText 
     android:layout_width="fill_parent" 
     android:id="@+id/editText1" 
     android:layout_height="wrap_content" 
     android:text="" 
     android:singleLine="true" /> 
     <TextView 
     android:text="" 
     android:textSize="10dp" 
     android:layout_gravity="center_horizontal" 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
     <TextView 
     android:text="First Name" 
     android:textSize="15dp" 
     android:id="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#FCFCFC" 
     android:singleLine="true" /> 
     <EditText 
     android:layout_width="fill_parent" 
     android:id="@+id/editText2" 
     android:layout_height="wrap_content" 
     android:text="" 
     android:textSize="20dp" 
     android:singleLine="true" /> 
     <TextView 
     android:layout_gravity="center_horizontal" 
     android:text="" 
     android:textSize="15dp" 
     android:layout_width="wrap_content" 
     android:id="@+id/TextView01" 
     android:layout_height="wrap_content" /> 
     <TextView 
     android:text="Description" 
     android:textSize="15dp" 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="#FCFCFC" 
     android:singleLine="true" /> 
    <EditText 
     android:layout_width="fill_parent" 
     android:id="@+id/editText1" 
     android:layout_height="wrap_content" 
     android:text="" 
     android:textSize="15dp" 
     android:singleLine="false" 
     android:lines="10" /> 
    </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 

我不相信你的400dp高度在這種情況下,必要的,因爲底部的元素將掛在屏幕的底部,而不是你需要一個的固定高度將它們分開。但是,如果它仍然相關,請將其放在ScrollViewLinearLayout之內,而不是ScrollView本身。這是整個佈局,BTW。不要插入任何東西。

如果這不是正是你所尋找的,希望它讓你在正確的道路:)

希望幫助吧!

+0

這就是我想要做的。但是當我打開電話時它不起作用。屏幕上的內容停留在那裏,我不能滾動 – codemanusa 2011-04-29 21:31:44

+0

是的最終LinearLayout被切斷了 – codemanusa 2011-04-29 21:35:38

+0

編輯與佈局我想你會去...試試吧。 – Devunwired 2011-04-29 21:53:35

0

你們是不是要水平滾動了滾動?根據API(http://developer.android.com/reference/android/widget/ScrollView.html),ScrollViews只能垂直工作。你可能必須編寫你自己的水平滾動的ScrollView實現。

+0

這似乎是應該自動發生的事情。我的佈局垂直安裝,但打開手機時間太長。我只是想讓它滾動,因爲我在佈局的底部有一個按鈕。現在我必須編寫一堆代碼來做到這一點?看起來不正確。 – codemanusa 2011-04-29 21:27:07

+0

忘了'Horizo​​ntalScrollView'的存在,傻了我。我仍然有點困惑。你說你在底部有一個按鈕......當你的手機處於橫向模式時,你想要垂直滾動嗎? – BigFwoosh 2011-04-29 21:30:31

+0

是的,這是正確的 – codemanusa 2011-04-29 21:33:20

0

你必須使用HorizontalScrollView移動水平滾動條

+0

我認爲這也是讓屏幕水平滾動。我想讓它在水平方向上垂直滾動。 – codemanusa 2011-04-29 21:29:05

0
<ScrollView 
    android:id="@+id/scrllvwNo1" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"> 
    <HorizontalScrollView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content">   
      <TextView 
      android:id="@+id/text" 
      android:text="your text" 
      android:gravity="center" 
      android:background="#0000aa" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/>   
    </HorizontalScrollView> 
    </ScrollView>  
+0

它涵蓋了垂直和水平滾動... – 2011-04-29 21:45:34

0

我認爲你要找的是android:isScrollContainer xml元素。將其設置爲true,並在android:scrollbarsandroid:scrollbarStyle中定義滾動條。開發人員文檔說這是爲了適應IME的,但我發現它的作用不止於此。