com.chad.library.adapter.base.loadmore.LoadMoreView Java Examples

The following examples show how to use com.chad.library.adapter.base.loadmore.LoadMoreView. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 6 votes vote down vote up
private void autoLoadMore(int position) {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    if (position < getItemCount() - mPreLoadNumber) {//即position ==时可触发加载更多
        return;
    }
    if (mLoadMoreView.getLoadMoreStatus() != LoadMoreView.STATUS_DEFAULT) {
        return;
    }
    Log.e("rrrr", this + "--> trigger load more the pos = " + position);
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_LOADING);
    if (!mLoading) {
        mLoading = true;
        if (getRecyclerView() != null) {
            getRecyclerView().post(new Runnable() {
                @Override
                public void run() {
                    mRequestLoadMoreListener.onLoadMoreRequested();
                }
            });
        } else {
            mRequestLoadMoreListener.onLoadMoreRequested();
        }
    }
}
 
Example #2
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 6 votes vote down vote up
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) {
                notifyLoadMoreToLoading();
            }
            if (mEnableLoadMoreEndClick && mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_END) {
                notifyLoadMoreToLoading();
            }
        }
    });
    return holder;
}
 
Example #3
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 6 votes vote down vote up
/**
 * Set the enabled state of load more.
 *
 * @param enable True if load more is enabled, false otherwise.
 */
public void setEnableLoadMore(boolean enable) {
    int oldLoadMoreCount = getLoadMoreViewCount();
    mLoadMoreEnable = enable;
    int newLoadMoreCount = getLoadMoreViewCount();

    if (oldLoadMoreCount == 1) {
        if (newLoadMoreCount == 0) {
            notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
        }
    } else {
        if (newLoadMoreCount == 1) {
            mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
            notifyItemInserted(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
        }
    }
}
 
Example #4
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 6 votes vote down vote up
/**
 * setting up a new instance to data;
 *
 * @param data
 */
public void setNewData(List<T> data) {
    this.mData = data == null ? new ArrayList<T>() : data;
    if (mRequestLoadMoreListener != null) {
        mNextLoadEnable = true;
        mLoadMoreEnable = true;
        mLoading = false;
        mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
    }
    mLastPosition = -1;
    if (getHeaderLayoutCount() == 1 && data != null) {
        notifyItemRangeChanged(getHeaderLayoutCount(), data.size());
    } else {
        notifyDataSetChanged();
    }
}
 
Example #5
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 6 votes vote down vote up
private void autoLoadMore(int position) {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    if (position < getItemCount() - mAutoLoadMoreSize) {
        return;
    }
    if (mLoadMoreView.getLoadMoreStatus() != LoadMoreView.STATUS_DEFAULT) {
        return;
    }
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_LOADING);
    if (!mLoading) {
        mLoading = true;
        if (getRecyclerView() != null) {
            getRecyclerView().post(new Runnable() {
                @Override
                public void run() {
                    mRequestLoadMoreListener.onLoadMoreRequested();
                }
            });
        } else {
            mRequestLoadMoreListener.onLoadMoreRequested();
        }
    }
}
 
Example #6
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 6 votes vote down vote up
/**
 * Set the enabled state of load more.
 *
 * @param enable True if load more is enabled, false otherwise.
 */
public void setEnableLoadMore(boolean enable) {
    int oldLoadMoreCount = getLoadMoreViewCount();
    mLoadMoreEnable = enable;
    mNextLoadEnable = enable;//added by fee 2019-06-26: enable时该变量也要为true
    int newLoadMoreCount = getLoadMoreViewCount();
    CommonLog.e("info", " setEnableLoadMore() oldLoadMoreCount = " + oldLoadMoreCount + " newLoadMoreCount= " + newLoadMoreCount);
    if (oldLoadMoreCount == 1) {//之前LoadMore View数量为1
        if (newLoadMoreCount == 0) {//这次没有了LoadMore View,则需要移除
            notifyItemRemoved(getLoadMoreViewPosition());
        }
        else{//newLoadMoreCount==1//不然这个下拉逻辑时会不能下拉了:
            if (mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_END) {
                mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
            }
        }
    } else {//之前LoadMore View数量为0
        if (newLoadMoreCount == 1) {//这次有了LoadMore View,则初始状态为STATUS_DEFAULT并加入RecyclerView
            mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
            notifyItemInserted(getLoadMoreViewPosition());
        }
    }
}
 
Example #7
Source File: AppImpl.java    From FastLib with Apache License 2.0 5 votes vote down vote up
/**
     * Adapter加载更多配置
     *
     * @param adapter
     * @return
     */
    @Nullable
    @Override
    public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
        if (adapter != null) {
            //设置动画是否一直开启
            adapter.isFirstOnly(false);
            //设置动画
            adapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
            adapter.openLoadAnimation();
        }
        //方式一:设置FastLoadMoreView--可参考FastLoadMoreView.Builder相应set方法
        //默认配置请参考FastLoadMoreView.Builder(mContext)里初始化
        return new FastLoadMoreView.Builder(mContext)
                .setLoadingTextFakeBold(true)
                .setLoadingSize(SizeUtil.dp2px(20))
//                                .setLoadTextColor(Color.MAGENTA)
//                                //设置Loading 颜色-5.0以上有效
//                                .setLoadingProgressColor(Color.MAGENTA)
//                                //设置Loading drawable--会使Loading颜色失效
//                                .setLoadingProgressDrawable(R.drawable.dialog_loading_wei_bo)
//                                //设置全局TextView颜色
//                                .setLoadTextColor(Color.MAGENTA)
//                                //设置全局TextView文字字号
//                                .setLoadTextSize(SizeUtil.dp2px(14))
//                                .setLoadingText("努力加载中...")
//                                .setLoadingTextColor(Color.GREEN)
//                                .setLoadingTextSize(SizeUtil.dp2px(14))
//                                .setLoadEndText("我是有底线的")
//                                .setLoadEndTextColor(Color.GREEN)
//                                .setLoadEndTextSize(SizeUtil.dp2px(14))
//                                .setLoadFailText("哇哦!出错了")
//                                .setLoadFailTextColor(Color.RED)
//                                .setLoadFailTextSize(SizeUtil.dp2px(14))
                .build();
        //方式二:使用adapter自带--其实我默认设置的和这个基本一致只是提供了相应设置方法
//                        return new SimpleLoadMoreView();
        //方式三:参考SimpleLoadMoreView或FastLoadMoreView完全自定义自己的LoadMoreView
//                        return MyLoadMoreView();
    }
 
Example #8
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 5 votes vote down vote up
/**
 * 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());
}
 
Example #9
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 5 votes vote down vote up
/**
 * setting up a new instance to data;
 *
 * @param data
 */
public void setNewData(@Nullable List<T> data) {
    this.mData = data == null ? new ArrayList<T>() : data;
    if (mRequestLoadMoreListener != null) {
        mNextLoadEnable = true;
        mLoadMoreEnable = true;
        mLoading = false;
        mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
    }
    mLastPosition = -1;
    notifyDataSetChanged();
}
 
Example #10
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 5 votes vote down vote up
/**
 * Refresh failed
 */
public void loadMoreFail() {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_FAIL);
    notifyItemChanged(getLoadMoreViewPosition());
}
 
Example #11
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 5 votes vote down vote up
/**
 * Refresh complete
 */
public void loadMoreComplete() {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mNextLoadEnable = true;
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
    notifyItemChanged(getLoadMoreViewPosition());
}
 
Example #12
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 5 votes vote down vote up
/**
 * Refresh end, no more data
 *
 * @param gone if true gone the load more view
 */
public void loadMoreEnd(boolean gone) {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mNextLoadEnable = false;
    mLoadMoreView.setLoadMoreEndGone(gone);
    if (gone) {
        notifyItemRemoved(getLoadMoreViewPosition());
    } else {
        mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_END);
        notifyItemChanged(getLoadMoreViewPosition());
    }
}
 
Example #13
Source File: AppImpl.java    From FastLib with Apache License 2.0 5 votes vote down vote up
/**
     * Adapter加载更多配置
     *
     * @param adapter
     * @return
     */
    @Nullable
    @Override
    public LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter) {
        if (adapter != null) {
            //设置动画是否一直开启
            adapter.isFirstOnly(false);
            //设置动画
            adapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
            adapter.openLoadAnimation();
        }
        //方式一:设置FastLoadMoreView--可参考FastLoadMoreView.Builder相应set方法
        //默认配置请参考FastLoadMoreView.Builder(mContext)里初始化
        return new FastLoadMoreView.Builder(mContext)
                .setLoadingTextFakeBold(true)
                .setLoadingSize(SizeUtil.dp2px(20))
//                                .setLoadTextColor(Color.MAGENTA)
//                                //设置Loading 颜色-5.0以上有效
//                                .setLoadingProgressColor(Color.MAGENTA)
//                                //设置Loading drawable--会使Loading颜色失效
//                                .setLoadingProgressDrawable(R.drawable.dialog_loading_wei_bo)
//                                //设置全局TextView颜色
//                                .setLoadTextColor(Color.MAGENTA)
//                                //设置全局TextView文字字号
//                                .setLoadTextSize(SizeUtil.dp2px(14))
//                                .setLoadingText("努力加载中...")
//                                .setLoadingTextColor(Color.GREEN)
//                                .setLoadingTextSize(SizeUtil.dp2px(14))
//                                .setLoadEndText("我是有底线的")
//                                .setLoadEndTextColor(Color.GREEN)
//                                .setLoadEndTextSize(SizeUtil.dp2px(14))
//                                .setLoadFailText("哇哦!出错了")
//                                .setLoadFailTextColor(Color.RED)
//                                .setLoadFailTextSize(SizeUtil.dp2px(14))
                .build();
        //方式二:使用adapter自带--其实我默认设置的和这个基本一致只是提供了相应设置方法
//                        return new SimpleLoadMoreView();
        //方式三:参考SimpleLoadMoreView或FastLoadMoreView完全自定义自己的LoadMoreView
//                        return MyLoadMoreView();
    }
 
Example #14
Source File: HomeViewModel.java    From demo4Fish with MIT License 5 votes vote down vote up
private void resetData() {
    mEntity.setListType(HomeEntity.LIST_TYPE_FRESH);
    mRefreshListPage = 1;
    mNearListPage = 1;
    mEntity.setLoadingMoreStatus(LoadMoreView.STATUS_DEFAULT);
    mEntity.setRefreshMoreStatus(LoadMoreView.STATUS_DEFAULT);
    mEntity.setNearMoreStatus(LoadMoreView.STATUS_DEFAULT);
}
 
Example #15
Source File: HomeViewModel.java    From demo4Fish with MIT License 5 votes vote down vote up
private void initData() {
    mEntity = new HomeEntity();
    mBannerList = new ObservableArrayList<>();
    mHomeList = new ObservableArrayList<>();
    mFreshList = new ArrayList<>();
    mNearList = new ArrayList<>();

    mEntity.setRefreshMoreStatus(LoadMoreView.STATUS_DEFAULT);
    mEntity.setNearMoreStatus(LoadMoreView.STATUS_DEFAULT);
    initFunctionEntities();
}
 
Example #16
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 5 votes vote down vote up
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());
            }
        }
    });
    return holder;
}
 
Example #17
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 5 votes vote down vote up
/**
 * Refresh failed
 */
public void loadMoreFail() {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_FAIL);
    notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
}
 
Example #18
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 5 votes vote down vote up
/**
 * Refresh complete
 */
public void loadMoreComplete() {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT);
    notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
}
 
Example #19
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 5 votes vote down vote up
/**
 * Refresh end, no more data
 *
 * @param gone if true gone the load more view
 */
public void loadMoreEnd(boolean gone) {
    if (getLoadMoreViewCount() == 0) {
        return;
    }
    mLoading = false;
    mNextLoadEnable = false;
    mLoadMoreView.setLoadMoreEndGone(gone);
    if (gone) {
        notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
    } else {
        mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_END);
        notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount());
    }
}
 
Example #20
Source File: IFastRefreshLoadView.java    From FastLib with Apache License 2.0 2 votes vote down vote up
/**
 * 获取加载更多布局
 *
 * @return
 */
default LoadMoreView getLoadMoreView() {
    return null;
}
 
Example #21
Source File: LoadMoreFoot.java    From FastLib with Apache License 2.0 2 votes vote down vote up
/**
 * 设置BaseQuickAdapter的加载更多视图
 *
 * @param adapter
 * @return
 */
@Nullable
LoadMoreView createDefaultLoadMoreView(BaseQuickAdapter adapter);
 
Example #22
Source File: BaseQuickAdapter.java    From BaseProject with Apache License 2.0 2 votes vote down vote up
/**
 * Set custom load more
 *
 * @param loadingView 加载视图
 */
public void setLoadMoreView(LoadMoreView loadingView) {
    this.mLoadMoreView = loadingView;
}
 
Example #23
Source File: BaseQuickAdapter.java    From demo4Fish with MIT License 2 votes vote down vote up
/**
 * Set custom load more
 *
 * @param loadingView
 */
public void setLoadMoreView(LoadMoreView loadingView) {
    this.mLoadMoreView = loadingView;
}