上拉下拉 pull-to-refresh

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();


            }
        });

猜你喜欢

转载自blog.csdn.net/user_app/article/details/78852497