如何删除短列表末尾的空格?

时间:2017-03-28 19:01:19

标签: java android listview

我今天正在为我的项目使用ListView,我需要我的列表视图从它从BUT调用的按钮开始,因为通常的列表视图表现的项目通常出现在它的分配空间的顶部(在屏幕上)当它这样做时,它留下了我想要摆脱的不需要的空间。

我的ListView假设有1-4个项目用于放映,另外2个用于滚动。 因此,有些情况下列表本身并不满。

是否可以让我的列表视图做我想要的,如果是,怎么做?

一个直观的例子: 我当前的ListView看起来像这样:

Item 1
Item 2
Item 3
*unwanted space*
*Button that changes the visibillity of the list view*

如果列表变短,我希望我的列表视图如下所示:

Item 1
Item 2
Item 3
*Button that changes the visibillity of the list view*

这是我的listView的XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layoutDirection="ltr"
    tools:targetApi="11">

    <ListView
        android:id="@+id/lv"
        style="@style/Widget.AppCompat.ListView"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_above="@+id/chooserBtn"
        android:layout_alignEnd="@+id/chooserBtn"
        android:layout_alignStart="@+id/chooserBtn"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您必须使用listview的“wrap_content”高度和父布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layoutDirection="ltr"
    tools:targetApi="11">
   <ListView
            android:id="@+id/lv"
            style="@style/Widget.AppCompat.ListView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/chooserBtn"
            android:layout_alignEnd="@+id/chooserBtn"
            android:layout_alignStart="@+id/chooserBtn"
            android:footerDividersEnabled="false"
            android:headerDividersEnabled="false" />
<!-- or use button code here just make listview height as "wrap_content"-->
</RelativeLayout>

希望这会有所帮助。

答案 1 :(得分:0)

Yeah... I looked for a few more hours in the web and finally found a working solution.

These 3 lines in the xml needed to be added:

android:footerDividersEnabled="false"
android:stackFromBottom="true"
android:headerDividersEnabled="false"