[Android]滑动刷新ListView——android-pulltorefresh使用方法解析

狂风中的少年 提交于 2019-12-03 10:30:51

    现在很多android应用程序,比如新浪微博,在联网刷新内容时,都有一个滑动刷新的ListView,用户将内容下滑,就会有新的结果呈现。如下图所示:

    

上图中的功能是一个开源的项目android-pulltorefresh来实现的,我们可以利用这个项目来完成这个功能。

这个项目的源码托管在github上,地址为:https://github.com/johannilsson/android-pulltorefresh

下面来介绍如何使用:

滑动刷新其实就用到一个类PullToRefreshListView,它是ListView的子类,相应用到的layout文件为pull_to_refresh_header.xml。也就是说要用滑动刷新,需要将上面的类和xml及一些图片下载下来放到自己的工程中调用。

我们在用到这个类的activity的layout中加上如下代码:

<!--
  The PullToRefreshListView replaces a standard ListView widget.
-->
<com.markupartist.android.widget.PullToRefreshListView
    android:id="@+id/android:list"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    />

在activity中加入下面的代码:

// Set a listener to be invoked when the list should be refreshed.
((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh() {
        // Do work to refresh the list here.
        new GetDataTask().execute();
    }
});

private class GetDataTask extends AsyncTask<Void, Void, String[]> {
    ...
    @Override
    protected void onPostExecute(String[] result) {
        mListItems.addFirst("Added after refresh...");
        // Call onRefreshComplete when the list has been refreshed.
        ((PullToRefreshListView) getListView()).onRefreshComplete();
        super.onPostExecute(result);
    }
}

以上代码分别是设置刷新监听器和后台任务执行。

自己原来写了一个例子,不小心删除了,就不重写贴给大家了。

另外,个人感觉这个滑动现在不是很灵敏,有些卡。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!