试图让textView坚持gridView滚动

时间:2013-04-16 22:25:17

标签: android android-layout android-gridview android-scroll

我有一个片段,其中textView给出了说明,并且在gridView下面。我希望textView向上滚动gridView。换句话说:当textView滚动时,gridView会在屏幕外消失。

我对如何实现这一点的想法是给gridView一个固定的高度,使整个布局可滚动 - 包括textView。但是,直到我无法实现这一点。有没有办法做到这一点?

布局无滚动:

Layout no scroll

滚动时:

When scrolled:

任何帮助/建议都将不胜感激。

我的布局XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/LightGrey"
    android:gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/chooseLine"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="18dp"
        android:text="@string/chooseLine"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <GridView
        android:id="@+id/gridLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="130dp"
        android:fitsSystemWindows="false"
        android:gravity="center"
        android:horizontalSpacing="5dp"
        android:numColumns="auto_fit"
        android:paddingTop="0dp"
        android:stretchMode="columnWidth"
        android:verticalSpacing="25dp" />

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

实现这一目标并非易事。你需要的是ListView添加标题视图的功能,但不幸的是,GridView不提供这种功能。

我过去解决此问题的方法是将GridView转换为ListView,然后将标头添加到ListView。我创建了一个包装器适配器,它接受原始适配器并将水平行的网格单元组合成一个列表行。

棘手的部分包括:根据屏幕宽度动态调整一行中的列数,考虑一行中视图类型的所有组合以及最后一行中剩余的空列,并正确处理点击交互。

答案 1 :(得分:1)

将整个LinearLayout放在ScrollView(How to use ScrollView in Android?)中,并将GridView设置为android:layout_height =“wrap_content”