如何一起滚动两个列表视图
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.
所述
我还没有找到适合这个问题的解决方案。我正在片段内实现列表。我在一个 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.
所述