android下拉刷新

  1. 导入依赖
compile 'in.srain.cube:ultra-ptr:1.0.11'
  1. 布局文件中引用


    

        

        
    

    



  1. 获取控件
private PtrFrameLayout mPtrFrame;

mPtrFrame = (PtrFrameLayout) view.findViewById(R.id.ptr);//下拉刷新插件
  1. 自定义
        View view = View.inflate(context, R.layout.content_list, null);
        LinearLayout loading = (LinearLayout) view.findViewById(R.id.content_loading);
        blogList = (ListView) view.findViewById(R.id.content_blog_list);
        mPtrFrame = (PtrFrameLayout) view.findViewById(R.id.ptr);//下拉刷新插件
        loading.setVisibility(View.VISIBLE);

        final PtrClassicDefaultHeader header = new PtrClassicDefaultHeader(context);
        header.setPadding(0, PtrLocalDisplay.dp2px(15), 0, 0);
        mPtrFrame.setHeaderView(header);
        mPtrFrame.addPtrUIHandler(header);
        mPtrFrame.setPtrHandler(new PtrHandler() {
            @Override
            public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
                //当listview在第一个的时候才能下拉刷新
                if (blogList.getChildAt(0) != null) {
                    if (blogList.getChildAt(0).getTop() == 0) {
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return true;
                }
            }

            @Override
            public void onRefreshBegin(PtrFrameLayout frame) {
                mPtrFrame.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mPtrFrame.refreshComplete();
                        getDataFromNet();
                        mPtrFrame.autoRefresh();//自动刷新
                    }
                }, 1800);
            }


        });
        loading.setVisibility(View.INVISIBLE);
        mPtrFrame.autoRefresh();

你可能感兴趣的:(android下拉刷新)