我的滚动视图不会滚动

时间:2015-11-18 21:14:08

标签: android xml scrollview

我有一个像这样的xml视图,如你所见,我有滚动视图,但滚动视图不滚动,只是匹配屏幕大小,我无法在屏幕下看到数据。 这是我的代码: 代码已更新

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

我确定屏幕下有一些数据,但滚动视图不允许我滚动它并看到它们。

3 个答案:

答案 0 :(得分:0)

你的布局错了。这是你要做的事情:

  1. 将您的ScrollView layout_height属性更改为 match_parent ScrollView将占据整个屏幕并使其自身可滚动,这就是为什么你需要它作为match_parent。滚动发生在视图内。
  2. 将所有内容放在ScrollView中LinearRelativeLayout。 (见下文)
    ScrollView扩展了FrameLayout ,因此它只能有一个子视图 重要提示:此布局必须将属性layout_height设置为 wrap_content ,否则ScrollView将没有任何大于其自身的内容进行滚动。< / LI>
  3. 我还会从XML中删除根布局,并将ScrollView保留为root 仅仅因为它没有意义,需要LayoutInflater的额外工作。
  4. <小时/> 编辑:您的布局也需要更复杂
    它让我相信你在ScrollView中没有一个孩子(你)。

    仍然,第1项应该可以解决您的问题。

答案 1 :(得分:0)

Scrollview布局只能有一个子布局。您发布的XML中仍然有两个线性布局子项。

ScrollView的Android开发者文档的第一段中对此进行了解释: http://developer.android.com/reference/android/widget/ScrollView.html

答案 2 :(得分:0)

最后,我找到了答案。问题来自滚动视图中的fillviewport。如果删除fillviewport并为listview设置修复大小,则可以滚动。