Skip to content

Commit

Permalink
Merge pull request #1219 from 1109993488/master
Browse files Browse the repository at this point in the history
  • Loading branch information
CymChad authored Jun 18, 2017
2 parents 86666bf + 098bdab commit 896806d
Showing 1 changed file with 41 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public abstract class BaseQuickAdapter<T, K extends BaseViewHolder> extends Recy
private boolean mLoading = false;
private LoadMoreView mLoadMoreView = new SimpleLoadMoreView();
private RequestLoadMoreListener mRequestLoadMoreListener;
private boolean mEnableLoadMoreEndClick = false;

//Animation
/**
Expand Down Expand Up @@ -333,6 +334,15 @@ public int getLoadMoreViewCount() {
return 1;
}

/**
* Gets to load more locations
*
* @return
*/
public int getLoadMoreViewPosition() {
return getHeaderLayoutCount() + mData.size() + getFooterLayoutCount();
}

/**
* @return Whether the Adapter is actively showing load
* progress.
Expand Down Expand Up @@ -362,10 +372,10 @@ public void loadMoreEnd(boolean gone) {
mNextLoadEnable = false;
mLoadMoreView.setLoadMoreEndGone(gone);
if (gone) {
notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemRemoved(getLoadMoreViewPosition());
} else {
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_END);
notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemChanged(getLoadMoreViewPosition());
}
}

Expand All @@ -377,8 +387,9 @@ public void loadMoreComplete() {
return;
}
mLoading = false;
mNextLoadEnable = true;
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemChanged(getLoadMoreViewPosition());
}

/**
Expand All @@ -390,7 +401,7 @@ public void loadMoreFail() {
}
mLoading = false;
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_FAIL);
notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemChanged(getLoadMoreViewPosition());
}

/**
Expand All @@ -405,12 +416,12 @@ public void setEnableLoadMore(boolean enable) {

if (oldLoadMoreCount == 1) {
if (newLoadMoreCount == 0) {
notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemRemoved(getLoadMoreViewPosition());
}
} else {
if (newLoadMoreCount == 1) {
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
notifyItemInserted(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyItemInserted(getLoadMoreViewPosition());
}
}
}
Expand Down Expand Up @@ -741,22 +752,43 @@ public K onCreateViewHolder(ViewGroup parent, int viewType) {

}


private K getLoadingView(ViewGroup parent) {
View view = getItemView(mLoadMoreView.getLayoutId(), parent);
K holder = createBaseViewHolder(view);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_FAIL) {
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
notifyLoadMoreToLoading();
}
if (mEnableLoadMoreEndClick && mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_END) {
notifyLoadMoreToLoading();
}
}
});
return holder;
}

/**
* The notification starts the callback and loads more
*/
public void notifyLoadMoreToLoading() {
if (mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_LOADING) {
return;
}
mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
notifyItemChanged(getLoadMoreViewPosition());
}

/**
* Load more without data when settings are clicked loaded
*
* @param enable
*/
public void enableLoadMoreEndClick(boolean enable) {
mEnableLoadMoreEndClick = enable;
}

/**
* Called when a view created by this adapter has been attached to a window.
* simple to solve item will layout using all
Expand Down

0 comments on commit 896806d

Please sign in to comment.