设置ListView的最大高度

4

有些事情确实很愚蠢,但我想为我的列表视图设置最大高度,而且似乎找不到能起作用的方法。有些人谈论设置列表视图的最大高度,但我找不到这个选项?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="40dp" >

    <ListView
        android:id="@+id/lvSwitch"
        android:layout_width="fill_parent"
        android:layout_height="120dp" >
    </ListView>
</LinearLayout>

但是当列表中只有一个项目时,它仍然具有120dp的高度,这是不必要的,当然它不能超过该高度...


1
嗨,你应该在ListView中使用android:layout_weight="1",请看我的答案。 - Talha
@Talha 在当前布局中无法实现此操作。当LinearLayout中没有其他项目时,layout_weight毫无用处。您需要至少两个项目才能产生所需的效果。 - Tash Pemhiwa
3个回答

1

试试这个:

 android:layout_height="wrap_content".

编辑: 您可以检查列表视图中的项目数量,并在其高于20时设置大小。类似这样:

if(numberOfItems>20){
listview.setWidth(yourSize)
}

1
android:layout_height="0dp"
android:layout_weight="1"

可能可以解释一下吗?在这种情况下,最大高度设置为多少?是1吗? - Steven Jeuris

0

除了使用android:layout="120dp"之外,您也可以尝试使用android:minHeight="20dp",假设20dp是单个列表项的高度。这样,如果ListView只有1或2个项目,它就不会占用整个120dp。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接