1

我有一个带有textView给出说明的片段,下面是gridView. 我想让textView向上滚动gridView。换句话说:用于在滚动textView时从屏幕上消失。gridView

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

布局无滚动:

布局无滚动

滚动时:

滚动时:

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

我的布局 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>
4

2 回答 2

2

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

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

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

于 2013-04-17T00:47:45.387 回答
1

将整个 LinearLayout 放在 ScrollView 中(如何在 Android 中使用 ScrollView?)并为 GridView 设置 android:layout_height="wrap_content"

于 2013-04-16T22:31:05.027 回答