feat:Fix Flowlayout call onLoadMore multi times

This commit is contained in:
pengfeizhou
2021-02-02 19:52:39 +08:00
committed by osborn
parent 112e45af06
commit 2de59a307f
2 changed files with 21 additions and 4 deletions

View File

@@ -45,6 +45,7 @@ class FlowAdapter extends RecyclerView.Adapter<FlowAdapter.DoricViewHolder> {
int itemCount = 0;
int batchCount = 15;
SparseArray<String> itemValues = new SparseArray<>();
private int loadAnchor = 0;
FlowAdapter(FlowLayoutNode flowLayoutNode) {
this.flowLayoutNode = flowLayoutNode;
@@ -66,9 +67,8 @@ class FlowAdapter extends RecyclerView.Adapter<FlowAdapter.DoricViewHolder> {
holder.flowLayoutItemNode.setId(jsObject.getProperty("id").asString().value());
holder.flowLayoutItemNode.blend(jsObject.getProperty("props").asObject());
}
if (position >= this.itemCount) {
this.flowLayoutNode.callJSResponse(this.flowLayoutNode.onLoadMoreFuncId);
if (position >= this.itemCount && !TextUtils.isEmpty(this.flowLayoutNode.onLoadMoreFuncId)) {
callLoadMore();
StaggeredGridLayoutManager.LayoutParams layoutParams = new StaggeredGridLayoutManager.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
holder.itemView.getLayoutParams().height
@@ -143,6 +143,14 @@ class FlowAdapter extends RecyclerView.Adapter<FlowAdapter.DoricViewHolder> {
}
}
private void callLoadMore() {
if (loadAnchor != itemCount) {
loadAnchor = itemCount;
this.flowLayoutNode.callJSResponse(this.flowLayoutNode.onLoadMoreFuncId);
}
}
static class DoricViewHolder extends RecyclerView.ViewHolder {
FlowLayoutItemNode flowLayoutItemNode;