删除列表视图上的填充

Remove padding on listview

您好,我有一个恼人的问题,我想在我的列表视图底部放置一个按钮作为操作栏的一部分,但是在列表视图的最后一项下方有一些填充我无法摆脱.这是我的代码,如有任何帮助,我们将不胜感激。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawingCacheQuality="high">

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:drawingCacheQuality="high"
    android:paddingBottom="0dp"
    android:layout_margin="0dp"
    >

<ListView
    android:id="@+id/messagingListView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@null"
    android:layout_margin="0dp"
    android:layout_alignParentTop="true"
    android:dividerHeight="10dp"
    android:paddingTop="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="0dp"
    android:paddingLeft="10dp"
    />
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="0dp"
    android:background="#FFFFFF"
    android:layout_alignParentBottom="true">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="new_game"
        android:textColor="#FFFFFF"
        />
</LinearLayout>

更简单的布局如下所示:

  • 包含 ListView 和操作栏
  • 的垂直 LinearLayout
  • 用于操作栏的 LinearLayout 的高度为 wrap_content,因此它仅获得其子项所需的高度
  • ListView 有它的 height0dp 和它的 weight1 为了让它占用所有可用的 space左边的操作栏
<?xml version="1.0"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:drawingCacheQuality="high">
    <ListView
        android:id="@+id/messagingListView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:divider="@null"
        android:layout_margin="0dp"
        android:dividerHeight="10dp"
        android:paddingTop="10dp"
        android:paddingRight="10dp"
        android:paddingBottom="0dp"
        android:paddingLeft="10dp" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="0dp"
        android:background="#FFFFFF">
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="new_game"
            android:textColor="#FFFFFF" />
    </LinearLayout>
</LinearLayout>

如果 space 仍然存在,您应该明确向我们展示用于列表项的布局

注:
在 Android Studio 中,尝试单击 LinearLayout 使其在 Preview 中突出显示,然后在 ListView 上单击以查看是否存在间隙(使用飞涨)。 如果您看到上面的布局有差距,那是您计算机上的一个 Android Studio Preview 错误,它适用于所有设备。