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 用于排序和过滤:)
我在 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 用于排序和过滤:)