Android--Demo_PullToRefresh(基础篇)









一、导包

导入项目“PullToRefresh”
File-->New-->Import Module




找到文件然后Finish





然后目录是这样的





在app下的build中添加

compile project(':PullToRefresh') //pulltorefresh


然后就可以使用了


二、使用(基础篇)

以ListView为例(只写主要代码,其他的请下载Demo自己看吧):
在布局中添加

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

这是默认的最基本的样式(自定义样式后面讲)
代码中添加代码获取到PullTorefresh中的ListView

mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_to_refresh);
lv = mPullToRefreshListView.getRefreshableView();//获取listview


然后具体使用和平时我们用的listView是一样的(适配器大家自己写了)。


private void initRefresh()
{

    /*
     * Mode.BOTH:同时支持上拉下拉
     * Mode.PULL_FROM_START:只支持下拉Pulling Down
     * Mode.PULL_FROM_END:只支持上拉Pulling Up
     * Mode.DISABLED:禁用下拉刷新和上拉加载
     * Mode.MANUAL_REFRESH_ONLY:只允许手动触发
     */
    /*
     * 如果Mode设置成Mode.BOTH,需要设置刷新Listener为OnRefreshListener2,并实现onPullDownToRefresh()、onPullUpToRefresh()两个方法。
     * 如果Mode设置成Mode.PULL_FROM_START或Mode.PULL_FROM_END,需要设置刷新Listener为OnRefreshListener,同时实现onRefresh()方法。
     * 当然也可以设置为OnRefreshListener2,但是Mode.PULL_FROM_START的时候只调用onPullDownToRefresh()方法,
     * Mode.PULL_FROM_END的时候只调用onPullUpToRefresh()方法.
     * 我一般用OnRefreshListener2,因为分工比较清楚
     */
    mPullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);


    /*
     * getLoadingLayoutProxy(final boolean includeStart, final boolean includeEnd)
     * 用于指定显示的标签,第一个是改变头部,第二个是改变底部
     */
    ILoadingLayout startLoading = mPullToRefreshListView.getLoadingLayoutProxy(
            true, false);
    startLoading.setPullLabel("下拉刷新");// 刚下拉时显示的提示
    startLoading.setRefreshingLabel("拼命刷新中...");// 刷新时显示的提示
    startLoading.setReleaseLabel("释放即可刷新");// 下拉达到一定距离时显示的提示

    ILoadingLayout endLoading = mPullToRefreshListView.getLoadingLayoutProxy(false,
            true);
    endLoading.setPullLabel("上拉加载更多");// 刚上拉时显示的提示
    endLoading.setRefreshingLabel("拼命加载中...");// 加载时的提示
    endLoading.setReleaseLabel("释放即可加载");// 上拉达到一定距离时显示的提示


    mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>()
    {

        // 下拉刷新
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView)
        {

            // 设置一秒后停止刷新(本地设置假数据,时间太短,会导致数据更新后,依旧显示刷新中)
            mPullToRefreshListView.postDelayed(new Runnable()
            {
                @Override
                public void run()
                {
                    // 停止刷新
                    mPullToRefreshListView.onRefreshComplete();
                    // 加载数据
                    initDownLv();
                    // 刷新适配器中的数据
                    myAdapter.notifyDataSetChanged();
                }
            }, 1000);

        }

        // 上拉加载更多
        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView)
        {

            // 设置一秒后停止刷新(本地设置假数据,时间太短,会导致数据更新后,依旧显示刷新中)
            mPullToRefreshListView.postDelayed(new Runnable()
            {
                @Override
                public void run()
                {
                    // 停止刷新
                    mPullToRefreshListView.onRefreshComplete();
                    // 加载数据
                    initUpLv();
                    // 刷新适配器中的数据
                    myAdapter.notifyDataSetChanged();
                }
            }, 1000);
        }
    });
}




最后我们来看看成果:







这就是基本达到我们需要的要求了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值