Skip to content

Commit

Permalink
Added Pagination Margin
Browse files Browse the repository at this point in the history
  • Loading branch information
praveen-pro committed May 17, 2018
1 parent 2844d1e commit 37f073c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ private void setupView(){

List<InfiniteFeedInfo> feedList = Utils.loadInfiniteFeeds(this.getApplicationContext());
mLoadMoreView.setLoadMoreResolver(new LoadMoreView(mLoadMoreView, feedList));
mLoadMoreView.setPaginationMargin(5);
Log.d("DEBUG", "LoadMoreView.LOAD_VIEW_SET_COUNT " + LoadMoreView.LOAD_VIEW_SET_COUNT);
for(int i = 0; i < LoadMoreView.LOAD_VIEW_SET_COUNT; i++){
mLoadMoreView.addView(new ItemView(this.getApplicationContext(), feedList.get(i)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class InfinitePlaceHolderView extends PlaceHolderView {
private Object mLoadMoreResolver;
private LoadMoreCallbackBinder mLoadMoreCallbackBinder;
private PlaceHolderView.OnScrollListener mOnScrollListener;
private int mPaginationMargin = 0;

public InfinitePlaceHolderView(Context context) {
super(context);
Expand All @@ -39,14 +40,15 @@ private void setLoadMoreListener() {
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LayoutManager layoutManager = recyclerView.getLayoutManager();
if(layoutManager instanceof LinearLayoutManager) {
if (layoutManager instanceof LinearLayoutManager) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
int totalItemCount = linearLayoutManager.getItemCount();
int lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition();
int firstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
int visibleItemCount = linearLayoutManager.getChildCount();
if (!mIsLoadingMore
&& !mNoMoreToLoad
&& totalItemCount > 0
&& totalItemCount == lastVisibleItem + 1) {
&& visibleItemCount + firstVisibleItem >= totalItemCount - mPaginationMargin) {
mIsLoadingMore = true;
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
Expand All @@ -62,19 +64,19 @@ public void run() {
addOnScrollListener(mOnScrollListener);
}

public <T>void setLoadMoreResolver(T loadMoreResolver) {
public <T> void setLoadMoreResolver(T loadMoreResolver) {
mLoadMoreResolver = loadMoreResolver;
mLoadMoreCallbackBinder = Binding.bindLoadMoreCallback(loadMoreResolver);
mNoMoreToLoad = false;
setLoadMoreListener();
}

public void noMoreToLoad(){
public void noMoreToLoad() {
mNoMoreToLoad = true;
removeOnScrollListener(mOnScrollListener);
}

public void loadingDone(){
public void loadingDone() {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Expand All @@ -87,4 +89,8 @@ public void run() {
public int getViewCount() {
return super.getViewResolverCount() - 1;
}
}

public void setPaginationMargin(int margin) {
mPaginationMargin = margin;
}
}

0 comments on commit 37f073c

Please sign in to comment.