2015-11-18 260 views
0

我有一個像這樣的xml視圖,正如你所看到的,我有滾動視圖,但滾動視圖不滾動,只是匹配屏幕大小,我無法看到屏幕下的數據。 這是我的代碼:CODE 已更新我的滾動視圖不滾動

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/white" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/aboveRelative" 
     android:background="@color/darkOrange"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/category_text" 
      android:textSize="23sp" 
      android:textColor="@color/white" 
      android:text="Category" 
      android:paddingLeft="10sp" /> 
     <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/gridview" 
      android:layout_width="match_parent" 
      android:layout_height="200dp" 
      android:verticalSpacing="0dp" 
      android:horizontalSpacing="10dp" 
      android:numColumns="2" 
      /> 


    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/gray" 
     android:orientation="vertical"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/topVoices" 
       android:textSize="23sp" 
       android:text="@string/topVoices" 

       android:paddingLeft="10sp" /> 

      <ListView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/trendlist" 
       android:elevation="2dp" 
       android:background="@color/white" 
       android:layout_margin="10dp" /> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/moreTrend" 
       android:layout_gravity="right" 
       android:textSize="23sp" 
       android:text="More" 

       android:paddingLeft="10sp" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 


       android:id="@+id/newVoices" 
       android:textSize="23sp" 
       android:text="@string/newVoices" 
       android:paddingLeft="10sp" /> 
      <ListView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/soundlist" 
       android:background="@color/white" 
       android:layout_below="@+id/newVoices" 
       android:elevation="5dp" 
       android:layout_margin="10dp" /> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/soundlist" 
       android:id="@+id/moreNew" 
       android:layout_gravity="right" 
       android:textSize="23sp" 

       android:text="@string/more"/> 
      <LinearLayout 
       android:id="@+id/yoursongs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:layout_gravity="center" 
       android:background="@color/white" 
       android:padding="10dp"> 

      </LinearLayout> 

    </LinearLayout> 

    </LinearLayout> 

我敢肯定,有一些數據在屏幕下方滾動,但鑑於沒有讓我把它的滾動,並看到他們。

+0

因此,它應該只有一個孩子,但看着你的代碼,我認爲你有它。此外,因爲您使用的是RelativeLayout,您是否可以看到它是否以某種方式最終在循環中重新測量顯示,因爲它是滾動視圖?相對佈局適應最大值?我會嘗試將所有RelativeLayouts更改爲LinearLayout,以查看是否屬於這種情況。另外,你不要在根目錄下移除LinearLayout並以root身份離開ScrollView? – Dusko

+0

我做了你所說的,但結果沒有什麼不同。 –

+0

你有一個ScrollView內的ListView,可能不工作?檢查這個鏈接:http://developer.android。com/intl/es/reference/android/widget/ScrollView.html 明確說你不應該在scrollview中使用listview。 – Dusko

回答

0

您的佈局錯誤。下面是你必須做什麼:

  1. 您的滾動型layout_height屬性更改爲match_parent
    ScrollView將佔用整個屏幕並使其自身可滾動,這就是爲什麼您需要它作爲match_parent。滾動發生在視圖內。
  2. 將所有內容放在ScrollView中的LinearRelativeLayout。 (見下)
    ScrollView擴展了FrameLayout,所以它只能有一個子視圖。
    重要:這個佈局必須有屬性layout_height設置爲wrap_content,否則滾動型將不會有任何大於自身滾動。
  3. 我也想從XML中刪除根佈局,並以root身份離開ScrollView。
    只是因爲它毫無意義,它需要LayoutInflater額外的工作。


編輯:你的佈局也,它需要有辦法 更加複雜。
它讓我相信你在ScrollView裏沒有一個孩子(你的)。

不過,項目#1應該可以解決您的問題。

+0

我做了你所說的,但沒有任何改變。 –

+0

你能用最新的XML更新你的問題嗎? –

+0

對不起,我在原始答案中有一個項目,但我刪除了它,因爲您的代碼已經正確。然後當你改變我的建議時,你一定是不小心改變了它。看看ScrollView裏面的LinearLayout,最上面的一個。它的'layout_height'被設置爲'match_parent'。它不可能,所以請把它改成'wrap_content'(並且只有這個)。 –

0

最後,我找到了答案。問題出自scroll view中的fillviewport。如果您刪除fillviewport併爲listview設置修正大小,則可以滾動。