2

我有两个彼此上方的 ListView:

  • 当第二个 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 变得太大时,我尝试通过从自定义适配器以编程方式更改 layout_height 来解决此问题。但是我的列表项有不同的大小,所以在将高度更改为固定值后,我不知道如何在添加或更改项目时检测内容高度。

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

4

0 回答 0