我在 ScrollView 内的 LinearLayout 内有一个 GridView,该 ScrollView 分页来自服务器的数据。GridView 下方是一个用于加载更多数据的按钮。我的 GridView 的最终高度将大于屏幕。如果我将 GridView 的高度设置为 wrap_content 或 parent_fill,它会将自身调整为屏幕上可用的确切高度,并且根本不会滚动,从而裁剪掉多余的行。如果我将 layout_height 显式设置为较大的值,例如 1000dip,则滚动行为正常,但是我无法先验地预测滚动视图的最终高度。
如何以编程方式确定 GridView 的必要高度以获得所需的行为?
下面是我的布局。如您所见,我将高度设置为 1000dip,但这是虚假的,我需要该值来自动/以编程方式设置:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:layout_weight="1"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="1000dip"
android:columnWidth="70dp"
android:numColumns="auto_fit"
android:verticalSpacing="0dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:background="#000000"
android:layout_weight="1"
/>
<Button
android:id="@+id/load_more"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Load More Foo"
/>
</LinearLayout>
</ScrollView>