Android GridView拉伸行高

时间:2017-01-20 15:16:55

标签: android gridview

我有一个GridView,其中的项目没有占据全部高度。他们希望以与水平方式相同的方式伸展。我能做到吗?

GridView旨在获取布局中的剩余空间。所以它的高度不同。但它被定义为不可滚动,因为总是有足够的空间。有没有手动计算每个项目的高度的解决方案?或者,如果没有,我可以一般计算适配器内的所需高度吗?

网格视图定义如下:

    <GridView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/menu_grid_view"
        android:horizontalSpacing="8dp"
        android:verticalSpacing="8dp"
        android:isScrollContainer="false"
        android:numColumns="3"
        android:scrollbars="none"
        android:stretchMode="columnWidth"/>

我还在项目上使用layout_height=0,layout_weight=1进行了尝试。但这将是一个嵌套的重量,它不起作用。

1 个答案:

答案 0 :(得分:0)

可能你想要完成这件事。

重量仅适用于线性布局。

你可以试试这个我希望这可以帮助你理解你没有得到正确布局的问题。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".3"
        android:text="textview"/>

    <GridView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".7"
        android:id="@+id/menu_grid_view"
        android:horizontalSpacing="8dp"
        android:verticalSpacing="8dp"
        android:isScrollContainer="false"
        android:numColumns="3"
        android:scrollbars="none"
        android:stretchMode="columnWidth"/>

</LinearLayout>