PullToRefresh列表与固定部分标题

有没有人有练习使用Pull to refresh列表与Pinned section header ? 我使用Android的PullToRefresh lib与我的列表,我想增加显示列表顶部的固定部分标题的能力。 我在另一个项目中使用PinnedHeaderListView lib作为固定部分。 但是我不能把这两个库合并成一个。

Android的PullToRefresh可以显示固定的部分标题? 也许任何其他Pull to refresh lib可以做到这一点?

Solutions Collecting From Web of "PullToRefresh列表与固定部分标题"

可以将Actionbar-PullToRefresh库与StickyListHeaders库集成,但是需要使用自定义Delegate才能使Actionbar-PullToRefresh正常工作:

 public class StickyListViewDelegate extends AbsListViewDelegate { @Override public boolean isReadyForPull(View view, final float x, final float y) { StickyListHeadersListView sticky = (StickyListHeadersListView) view; return super.isReadyForPull(sticky.getWrappedList(), x, y); } 

整合如此:

 StickyListViewDelegate delegate = new StickyListViewDelegate(); ActionBarPullToRefresh.from(getActivity()).theseChildrenArePullable(mListView) .useViewDelegate(StickyListHeadersListView.class, delegate) .listener(this).setup(mPullToRefreshLayout); 

这两个库不能一起工作的原因是因为StickyListHeadersListView类实际上并没有扩展ListView(这是默认分配委托时,Actionbar-PullToRefresh库所寻找的)。

我做了一些研究,发现了两种select:

  1. StickyListHeaders 。 这个图书馆由杰克·沃顿( 参考 )贡献,所以它是有前途的,可以与其他图书馆兼容。 你应该尝试使用它。
  2. PinnedSectionListView – 易于使用ListView与固定部分为Android。

你可以试试把这两个库与ActionBar-PullToRefresh结合起来。 我想你可以实施解决scheme;)

您可以使用支持库的SwipeRefreshLayout和PinnedHeaderListview的组合 。

在你的XML文件中,使用如下所示:

 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/pinned_lisview_container" android:layout_width="match_parent" android:layout_height="match_parent" > <za.co.immedia.pinnedheaderlistview.PinnedHeaderListView android:id="@+id/event_items_lisview" android:layout_width="match_parent" android:layout_height="match_parent" > </za.co.immedia.pinnedheaderlistview.PinnedHeaderListView> </android.support.v4.widget.SwipeRefreshLayout> 

然后在java代码中,照常编写PinnedHeaderListView的代码。 最后只需像下面那样为您的SwipeRefreshLayout放置一个Refresh Listener:

 pinned_lisview_container .setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { // do your refresh tasks here } }); 

你完成了。

SwipeRefreshLayout +任何其他合适的库,你会使用可以做这项工作。 我宁愿PinnedSectionListView是因为它使用Listview,它有它在UI / UX方面的优点。