Skip to content

Releases: youlookwhat/ByRecyclerView

1.4.0

31 May 03:29
Compare
Choose a tag to compare

adapter里新增:

setPageEmptyView(View emptyView)
setPageData(boolean isFirstPage, List<T> data)

在adapter里可单独设置emptyView,然后再使用setPageData

1.3.7

09 Jun 01:34
Compare
Choose a tag to compare

fix removeData() ad5e59b

1.3.6

23 Oct 02:30
Compare
Choose a tag to compare

fix 优化判断是否能加载更多逻辑

public boolean isLoadMoreEnabled() {
    return mLoadMoreListener != null && (mLoadMoreEnabledStatus == 1 || mLoadMoreEnabledStatus == 2);
}

1.3.5

16 Oct 07:16
Compare
Choose a tag to compare
    /**
     * 设置数据 和 处理空视图。
     * 如果想列表上方状态视图(StateView),不能使用这个方法。
     *
     * @param isFirstPage 是否是第一页
     * @param data        需要设置的数据
     * @param emptyView   空视图的View
     */
    public void setPageData(boolean isFirstPage, List<T> data, View emptyView)

增加setPageData()一行代码即可处理列表显示数据。

1.3.3

21 Sep 06:43
Compare
Choose a tag to compare
  • 内存释放和临界状态的处理

1.3.2

12 Jul 07:07
Compare
Choose a tag to compare

fix item 悬浮置顶加入下拉刷新 ,悬浮错位 #57

相关修改:f9ce5b1
感谢提出者 PYJVIP,还给了解决方案。

if (StickyHeaderHandler.TYPE_STICKY_VIEW == mBaseAdapter.getItemViewType(i)) {
    int customTopItemViewCount = mBaseAdapter.getCustomTopItemViewCount();
    mHeaderPositions.add(i + customTopItemViewCount);
}

1.3.1

07 Apr 15:00
Compare
Choose a tag to compare

fix possible IndexOutOfBoundsException #52

修复可能发生的角标越界异常

if (mData != null && mData.size() > 0 && position < mData.size()) {
    return mData.get(position);
}

更新JitPack配置

1.3.0

22 Dec 13:25
Compare
Choose a tag to compare

增加自动加载更多功能,即相比以前只用在设置监听时加上状态true即可,使用方式:

void setOnLoadMoreListener(boolean isAutoLoadMore, OnLoadMoreListener listener)
void setOnLoadMoreListener(boolean isAutoLoadMore, int preLoadNumber, OnLoadMoreListener listener)

/**
 * 设置加载更多监听
 *
 * @param isAutoLoadMore 是否自动加载
 * @param preLoadNumber  自动加载时,默认滑动到倒数第[preLoadNumber]条数据加载,默认1
 * @param listener       监听器
 * @param delayMillis    延迟多少毫秒执行加载更多
 */
void setOnLoadMoreListener(boolean isAutoLoadMore, int preLoadNumber, OnLoadMoreListener listener, long delayMillis)
  1. 如果不设置,默认还是使用上拉松手加载更多机制(暂定,如果大部分人建议默认自动加载更多,可再调整)
  2. 设置后如果想取消自动加载还是使用recyclerView.setLoadMoreEnabled(false);
  3. 不满一屏不加载更多setNotFullScreenNoLoadMore(),只对上拉松手加载更多有效

PS:如果自定义了加载更多布局,会有提示错误,需要实现getState()方法,添加示例:

private int mState = BaseLoadMore.STATE_COMPLETE;
@Override
public void setState(int state) {
    mState = state;
}
@Override
public int getState() {
    return mState;
}

具体请见:SimpleLoadMoreView.java

1.2.1

22 Nov 04:35
Compare
Choose a tag to compare

[完善] 使用refreshNotifyItemChanged(position, payload);不继承bindViewPayloads时,默认使用bindView处理。

//  设置要局部刷新的position及payload
adapter.refreshNotifyItemChanged(position, PayloadAdapter.PAYLOAD_COLLECT);

// adapter里额外再继承 bindViewPayloads 方法
@Override
protected void bindViewPayloads(@NonNull BaseBindingHolder holder, @NonNull DataItemBean bean, @NonNull ItemPayloadBinding binding, int position, @NonNull List<Object> payloads) {
     // 删除掉这一行,自己处理,不走bindView()
     // super.bindViewPayloads(holder, bean, binding, position, payloads);
    for (Object p : payloads) {
        int code = (int) p;
        switch (code) {
            case PAYLOAD_ZAN:
                binding.tvZan.setText(bean.getIsZan() == 1 ? "已赞" : "点赞");
                break;
            case PAYLOAD_COLLECT:
                binding.tvCollect.setText(bean.getIsCollect() == 1 ? "已收藏" : "收藏");
                break;
            default:
                break;
        }
    }
}

1.2.0

20 Nov 14:21
Compare
Choose a tag to compare

新增 item局部刷新

//  设置要局部刷新的position及payload
adapter.refreshNotifyItemChanged(position, PayloadAdapter.PAYLOAD_COLLECT);

// adapter里额外再继承 bindViewPayloads 方法
@Override
protected void bindViewPayloads(@NonNull BaseBindingHolder holder, @NonNull DataItemBean bean, @NonNull ItemPayloadBinding binding, int position, @NonNull List<Object> payloads) {
    for (Object p : payloads) {
        int code = (int) p;
        switch (code) {
            case PAYLOAD_ZAN:
                binding.tvZan.setText(bean.getIsZan() == 1 ? "已赞" : "点赞");
                break;
            case PAYLOAD_COLLECT:
                binding.tvCollect.setText(bean.getIsCollect() == 1 ? "已收藏" : "收藏");
                break;
            default:
                break;

        }
    }
}