我有一个片段,其中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>
答案 0 :(得分:2)
实现这一目标并非易事。你需要的是ListView添加标题视图的功能,但不幸的是,GridView不提供这种功能。
我过去解决此问题的方法是将GridView转换为ListView,然后将标头添加到ListView。我创建了一个包装器适配器,它接受原始适配器并将水平行的网格单元组合成一个列表行。
棘手的部分包括:根据屏幕宽度动态调整一行中的列数,考虑一行中视图类型的所有组合以及最后一行中剩余的空列,并正确处理点击交互。
答案 1 :(得分:1)
将整个LinearLayout放在ScrollView(How to use ScrollView in Android?)中,并将GridView设置为android:layout_height =“wrap_content”