上拉下拉 pull-to-refresh

来源:互联网 发布:人工智能 健康管理 编辑:程序博客网 时间:2024/06/01 16:06

PullToRefresh概念:
开发者可以使用 PullToRefresh 对各种控件实现下拉刷新或者上拉加载以及可以自定义刷新和加载部分的视图。

第一步:导入依赖

compile 'com.github.userswlwork:pull-to-refresh:1.0.0'

第二步:加入控件

<com.handmark.pulltorefresh.library.PullToRefreshListView        android:id="@+id/ptlv"        android:layout_width="match_parent"        android:layout_height="match_parent"        > </com.handmark.pulltorefresh.library.PullToRefreshListView>

第三步:写入数据

list适配数据

第四步:监听方法

/** * 下拉刷新时会回调此方法 * ptlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {  } */
    /**     * 上拉 加滑动到底部的监听器     * ptlv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {  }     */
    /**     * 加滑动到底部的监听器     */    private void ptlvlastInfo() {        ptlv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {            @Override            public void onLastItemVisible() {                new Thread() {                    @Override                    public void run() {                        super.run();                        final String newPaths = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + b;                        b++;//                        请求数据                        final String newhttpcons = httpcon(newPaths);                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Bean bean = gson.fromJson(newhttpcons, Bean.class);                                List<Bean.DataBean> data_list = bean.getData();                                list.addAll(data_list);                                Log.d("MainActivity", "data_list:" + "-----" + data_list);                                adapter.notifyDataSetChanged();                            }                        });                    }                }.start();                Toast.makeText(MainActivity.this, "到底了", Toast.LENGTH_SHORT).show();            }        });    }    private void ptlvInfo() {/** * 下拉刷新时会回调此方法 */        ptlv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {            @Override            public void onRefresh(PullToRefreshBase<ListView> refreshView) {                final String newPath = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + a;                a++;                new Thread() {                    @Override                    public void run() {                        super.run();//                        请求数据                        final String newhttpcon = httpcon(newPath);                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Bean bean = gson.fromJson(newhttpcon, Bean.class);                                List<Bean.DataBean> data_list = bean.getData();                                list.addAll(0,data_list);                                Log.d("MainActivity", "data_list:" + "-----" + data_list);//                                刷新适配器                                adapter.notifyDataSetChanged();//                                关闭刷新                                ptlv.onRefreshComplete();                            }                        });                    }                }.start();            }        });
阅读全文
0 0
原创粉丝点击