【Android】第三方ONE开发之上拉加载更多的ListView

前言

由于项目中需要用到刷新的功能以及上拉加载更多的功能,下拉刷新的功能可以通过SwipeRefreshLayout来完成,在只需要实现上拉加载更多即可。因此在这里重载ListView自定义了一个LoadMoreListView,用于支持ListView的上拉加载更多。

LoadMoreListView

效果展示

我们的LoadMoreListView所要实现的效果如下图,也就是上拉时开始加载更多内容,并显示一个正在加载更多的footer,当加载完成后,则去除该footer。

实现

要实现这样一个上拉加载更多的ListView,首先我们需要给它一个footer,用于在底部告知用户正在加载更多的内容。这里我们简单地用一个ProgressBar+TextView来实现。

之后,我们就可以编写LoadMoreListView的代码了。

我们的控件是继承自ListView,这个毋庸置疑。我们先通过LayoutInflater拿到了footer_view,并调用ListView的addFooterView方法来为其设置footer同时设置其不可见,然后我们实现了AbsListView的OnScrollListener接口,AbsListView是ListView的父类,通过重写接口中的两个方法我们可以来判断当前是否滚动到了ListView的底部,若滚动到了,并且已经停止滚动,则开始加载数据并显示footer。加载完毕后,我们需要手动调用setLoadCompleted方法来告知LoadMoreListView已加载完毕,并且隐藏footer。

这样,我们的LoadMoreListView就成功实现了,使用的时候只需要像正常ListView使用并为它添加加载更多数据的回调接口即可。不过要记住的是,数据加载完毕时需要手动通知它已经加载完毕。

评 论 区

  1. 还没有任何评论,你来说两句吧

发表评论

%d 博主赞过: