如何一起滚动两个列表视图

How to scroll two listview together

我还没有找到适合这个问题的解决方案。我正在片段内实现列表。我在一个 LinearLayout 里面有两个 ListView

假设我在列表 1 中有五个项目,在列表 2 中有三个项目。因此当用户滚动时,他应该获得如同滚动一个列表的体验。

截至目前,列表 1 和列表 2 具有自己独立的滚动行为。我的代码如下

List.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/background_gray"
    tools:context=".fragment.MallListFragment"
    android:orientation="vertical">

    <ListView
        android:id="@+id/list1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="2dp"
        android:clipToPadding="false">
    </ListView>

    <ListView
        android:id="@+id/list2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ListView>

</LinearLayout>

使用 CWAC MergeAdapter 最简单的方法 - https://github.com/commonsguy/cwac-merge

此库使您可以将两个不同的适配器添加到一个 - MergeAdapter,并将此 MergeAdapter 添加到一个 Listview。

MergeAdapter mergeAdapter = new MergeAdapter();
mergeAdapter.addAdapter(yourFirstAdapter);
mergeAdapter.addAdapter(yourSecondAdapter);
mYourListView.setAdapter(mergeAdapter);

您可以考虑使用包含 header 部分的单个 ListView。基本上,您创建一个自定义适配器,它绑定两个(或更多)适配器和 returns 一个 header 视图,如 here.

所述