Skip to content

niorgai/RefreshView

Repository files navigation

RefreshView

包含下拉刷新和自动加载的View.

###下拉刷新 改自 Google 的 SwipeRefreshLayout , 作了如下改动:

  1. 修改其下拉样式, 抽取出来作为TopLoadingView, 可根据自身需求自定义View.
  2. 修改 canChildScrollUp() 方法支持 AbsListView.setEmptyView() . 但emptyView的 onTouchEvent 方法需要返回true.
  3. LoadingView 可以根据拉动的百分比(拉伸\透明)变化.
	refreshLayout.setLoadingViewScale(boolean scale);
	refreshLayout.setLoadingViewAlpha(boolean alpha);
  1. onTouchEvent 在滑动过程中联动子View, 详情可以查看滑动冲突解决-联动子View.
  2. 兼容 ViewPager , 解决方案可以查看滑动冲突解决-更合理的拦截.

用法如 SwipeRefreshLayout .

###自动加载 目前提供 AutoLoadListView , AutoLoadRecyclerViewAutoLoadScrollView 三个控件, 因为涉及加载失败和有没有更多内容的情况, 用法比较复杂.

AutoLoadView的加载会有两种不同的形式:

  1. 点击加载: 当View没有填满屏幕时, 此时View无法滚动, 所以需要点击加载.
  2. 自动加载: 当View填满屏幕且有更多内容 (isHaveMoretrue ) 时, 滚动到底部会自动加载.

查看 AutoLoadView 的接口.

   public interface AutoLoadView {

           void onStart();

           void onSuccess(boolean hasMore);

           void onFailure();

           void setIsHaveMore(boolean isHasMore);

           void setOnLoadMoreListener(onLoadMoreListener listener);
       }

以此来说明 AutoLoadView 的用法:

  1. 默认 AutoLoadView 没有更多内容,所以第一次需要设置 setIsHaveMore(true) . 同时设置 setLoadMoreListener .
  2. 每次加载完需要设置有没有更多. onSuccess(boolean hasMore) .
  3. 加载失败设置 onFailure() .

About

下拉刷新 + 自动加载

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages