dkzwm / SmoothRefreshLayout

一款支持上下拉刷新、越界回弹、二级刷新、横向刷新、拉伸回弹、平滑滚动、嵌套滚动的多功能刷新控件
MIT License
1.3k stars 218 forks source link

升级 到最新版 1.7,上拉加载更多的时候,上拉松手的位置不同,footer 经常不能自动回弹 #102

Closed dahai2070 closed 4 years ago

dahai2070 commented 4 years ago

另外我之前提交的96号issues 中的问题,现在下拉自动刷新的时候,header 出不来了,

package me.dkzwm.widget.srl;

import android.content.Context; import android.util.AttributeSet; import android.util.Log;

import me.dkzwm.widget.srl.MaterialSmoothRefreshLayout;

public class SyncScrollingRefreshLayout extends MaterialSmoothRefreshLayout { private static final String TAG = "SyncScrollingRefreshLay";

public SyncScrollingRefreshLayout(Context context) {
    super(context);
}

public SyncScrollingRefreshLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public SyncScrollingRefreshLayout(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected void moveHeaderPos(float delta) {
    super.moveHeaderPos(delta);
    Log.i(TAG, "moveHeaderPos: delta: " + delta);
    if (delta < 0) {
        tryToCompatSyncScroll(getScrollTargetView(), delta);

    }
}

protected void notifyUIRefreshComplete(boolean useScroll, boolean notifyViews) {
    super.notifyUIRefreshComplete(false, notifyViews);
    if (useScroll) {
        if (mScrollChecker.isFlingBack()) {
            mScrollChecker.stop();
        }
        tryScrollBackToTopByPercentDuration();
    }
}

}

dkzwm commented 4 years ago

@dahai2070 第一个问题,这边测试了嵌套滚动和普通滚动视图下的加载更多都能结束刷新后正常回弹,你不妨贴下布局已经配置,最好有debug模式下的日志,这样比较好追踪问题。 第二个问题1.7.0.androidx版本不需要SyncScrollingRefreshLayout已经这样实现了,当时只是用来做临时处理,相关代码已合入到最新的1.7.0.androidx版本了,去掉相关重载方法再看一下。

dahai2070 commented 4 years ago

我现在切换回之前版本了,那我再设置为最新的版本试试

第二个问题:现在直接使用 MaterialSmoothRefreshLayout ,配置 refreshLayout.setEnableAutoRefresh(true);

就能实现效果了哈,我试试

dahai2070 commented 4 years ago

测试了,header 还是显示不了。我还是换回老版本。

dkzwm commented 4 years ago

@dahai2070 这边不是很清楚问题出在哪里,新版本是没有对布局相关做修改的,Demo中的示例也没有发生这种情况。

dahai2070 commented 4 years ago

demo 中没有使用 EnableAutoRefresh的例子,有一个例子是 点在击事件里面,调用autoResh()而已。

dkzwm commented 4 years ago

@dahai2070 有的,测试RecyclerView那个

dahai2070 commented 4 years ago

看到了demo,果然有,并且header 显示顺畅。我先对比下用法。

dahai2070 commented 4 years ago

我发现 demo 中,力道比较小的时候,刚才是刚触发了自动刷新,但是刷新的header 出不来。刷新的回调是触发了的。这个有点鸡蛋挑骨头了。哈哈哈,

dahai2070 commented 4 years ago

我发现 demo WithRecyclerViewActivity 页面,力道比较小的时候,感觉是刚好触发了自动刷新,但是的header 出不来。刷新的回调是触发了的。这个有点鸡蛋挑骨头了。哈哈哈,