ListView 将底行切成两半

ListView is slicing the bottom row in half

由于某些原因,ListView 无法完全显示内容。底部每次都被切断一半。同一个应用程序中的其他 ListView 也会发生这种情况。

这就是这个应用程序中发生的事情。让我们看到列表视图的应用程序上的 window 对于列表视图本身来说是两个小的。

这是它在应用中的样子:

这是此布局的 XML:

<?xml version="1.0" encoding="utf-8"?>
    <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F5F5F5"
        android:columnCount="7"
        android:rowCount="3">

    <ImageView
        android:id="@+id/imgcolorsquarehat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="center_horizontal|center_vertical"
        android:src="@drawable/bluesquare" />

    <TextView
        android:id="@+id/Numberhat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_row="0"
        android:text="49"
        android:textColor="#FFFFFF"
        android:textSize="30sp" />

    <TextView
        android:id="@+id/TitleText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_columnSpan="4"
        android:layout_gravity="center_horizontal"
        android:layout_row="0"
        android:padding="10dp"
        android:text="Computer Science BSc"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000"
        android:textSize="25sp" />


    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imgcolorsquarehat"
        android:layout_column="0"
        android:layout_columnSpan="6"
        android:layout_gravity="center_horizontal"
        android:layout_row="1"
        android:paddingTop="10dp"
        android:progressDrawable="@drawable/red_progress"
        android:thumb="@drawable/red_thumb" />


    <ListView
        android:id="@+id/list_year"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_columnSpan="6"
        android:layout_gravity="top"
        android:layout_margin="10dp"
        android:layout_row="2"
        android:background="#FFFFFF"
        android:dividerHeight="5dp" />


    <CheckBox
        android:id="@+id/padlock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="5"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_row="0"
        android:background="@drawable/padlock_button"
        android:button="@android:color/transparent" />
</GridLayout>

编辑:见下图,ListView 认为它的边界应该在哪里。

我相信 ListView 上的 android:layout_margin="10dp" 是罪魁祸首。尝试删除它,看看会发生什么。

您不应该在 GridView 中使用 ListView,它们都是 AbsListView 的子类。 例如,您可以使用 LinearLayout。

<?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:background="#F5F5F5"
    android:columnCount="7"
    android:padding="10dp"
    android:orientation="vertical"
    android:rowCount="3">
...

尝试使用和更改 android:layout_margin 和 android:padding 属性,尝试使用多个值来调整屏幕上的视图,或者更好的是,调整子视图的高度。