我有两个彼此上方的 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 来解决此问题。但是我的列表项有不同的大小,所以在将高度更改为固定值后,我不知道如何在添加或更改项目时检测内容高度。
有人知道如何解决这个问题吗?