ListView的灵活高度最高可达到最大值

时间:2013-05-28 07:46:48

标签: android

我有两个ListViews彼此之上:

  • 当第二个ListView为空时,第一个ListView可能会填满整个区域。
  • 当第一个ListView为空时,第二个ListView可能会填满整个区域。
  • 当两个ListView都有项目时,第一个ListView必须按下第二个ListView,但必须保持第二个ListView的至少60dp可见。第一个ListView不得高于其内容。

我几乎用这种布局解决了所有这些要求:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  >
  <ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@null"
    android:cacheColorHint="@android:color/transparent"
    />
  <ListView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:minHeight="60dp"
    android:divider="@null"
    android:cacheColorHint="@android:color/transparent"
    />
</LinearLayout>

当第二个ListView为空时,我以编程方式将Visibility设置为Gone以满足第一个要求。

但是当第一个ListView填满时,它将向下推第二个ListView,直到它消失。

我试图通过在第一个ListView变得太大时以编程方式从自定义adaper更改layout_height来解决这个问题。但我的列表项目有不同的大小,所以在将高度更改为固定值后,我不知道如何在添加或更改项目时检测内容高度。

有人知道如何解决这个问题吗?

0 个答案:

没有答案