有没有人使用Pull to refresh
list with的做法Pinned section header
?我将Android-PullToRefresh库与我的列表一起使用,并且我想添加在列表顶部显示固定部分标题的功能。我在另一个项目中使用PinnedHeaderListView库作为固定部分。但是我不能将这两个库合二为一。
Android-PullToRefresh 可以显示固定的部分标题吗?也许任何其他Pull to refresh
库可以做到这一点?
有没有人使用Pull to refresh
list with的做法Pinned section header
?我将Android-PullToRefresh库与我的列表一起使用,并且我想添加在列表顶部显示固定部分标题的功能。我在另一个项目中使用PinnedHeaderListView库作为固定部分。但是我不能将这两个库合二为一。
Android-PullToRefresh 可以显示固定的部分标题吗?也许任何其他Pull to refresh
库可以做到这一点?
可以将Actionbar-PullToRefresh库与StickyListHeaders库集成,但您需要使用自定义委托才能使 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 库寻找的)。
我做了一些研究,发现了两种选择:
您可以尝试将这两个库与 ActionBar-PullToRefresh 结合使用。我想你可以实施解决方案;)
您可以结合使用支持库的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 放置一个刷新侦听器,如下所示:
pinned_lisview_container
.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
// do your refresh tasks here
}
});
你完成了。
SwipeRefreshLayout + 您将使用的任何其他合适的库都可以完成这项工作。我更喜欢 PinnedSectionListView 因为它使用 Listview 并且在 UI/UX 方面有它的优点。