GridLayout 内的 ListView

ListView inside GridLayout

我在 android.support.v7.widget.GridLayout 中有一个 ListView,这是我的代码:

        <!-- Sort -->
        <Space
            android:layout_width="@dimen/dialog_content_space"
            app:layout_gravity="fill_vertical"
            app:layout_rowSpan="2" />

        <TextView
            style="@style/TextView"
            android:layout_width="@dimen/none"
            android:layout_height="@dimen/dialog_content_row_height"
            android:text="@string/sort"
            app:layout_columnWeight="1" />

        <Spinner
            android:id="@+id/spinner_sort"
            style="@style/Spinner"
            android:layout_width="@dimen/none"
            android:layout_height="@dimen/dialog_content_row_height"
            app:layout_columnWeight="1" />

        <Space
            android:layout_width="@dimen/dialog_content_space"
            app:layout_gravity="fill_vertical"
            app:layout_rowSpan="2" />

        <TextView
            android:id="@+id/txt_filter"
            style="@style/TextView"
            android:layout_width="@dimen/none"
            android:layout_height="@dimen/dialog_content_row_height"
            android:text="@string/filter"
            app:layout_columnWeight="1" />

        <Spinner
            android:id="@+id/spinner_filter"
            style="@style/Spinner"
            android:layout_width="@dimen/none"
            android:layout_height="@dimen/dialog_content_row_height"
            app:layout_columnWeight="1" />

        <include
            layout="@layout/divider"
            android:layout_width="match_parent"
            android:layout_height="@dimen/divider_height"
            android:layout_marginTop="@dimen/divider_margin"
            app:layout_columnSpan="4" />

        <ListView
            android:id="@+id/layout_courses"
            android:layout_width="@dimen/none"
            android:layout_height="@dimen/none"
            app:layout_rowWeight="1"
            app:layout_gravity="fill"
            app:layout_columnSpan="4"
            android:divider="@null"
            android:scrollbars="none"/>

        <Space
            android:layout_width="@dimen/none"
            android:layout_height="12dp"
            app:layout_gravity="fill"
            app:layout_columnSpan="4"/>
    </android.support.v7.widget.GridLayout>`

https://goo.gl/bJub9t 这是它在 AndroidStudio

Design 选项卡中的样子

图片中显示的正是我想要实现的,但是当我 运行 我的应用程序在 Android 设备中时 ListView 它完全是空的。

我猜这与 ListView 宽度和高度均为 0dp(这是 @dimen/none 的值)这一事实有关,但对于这些值,这是唯一的方法我可以得到我想要的结果。

为什么不直接将 ListView 放在 GridLayout 下方?布局并不真的需要用 ListView 作为 GridLayout 的一部分来构建,因为您只是试图在 ListView 上方创建一个固定的 header 用于排序和过滤:)