2

我在我的布局中使用 SwipeRefreshLayout,我需要显示一个动画来调整已被拉下的距离。

到目前为止,我还没有找到任何方法来检测已拉出的实际距离。SwipeRefreshListener 只检测是否发生了刷新。

任何帮助,将不胜感激。

4

1 回答 1

1

要监控拖动距离,您可以简单地跟踪 SwiperefreshLayout 顶部与其唯一直接子顶部之间的距离。

我发现观察距离变化的唯一方法是使用 PrewDrawListener。

这是一个代码片段:

swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.swipe_container);
...
final View swipeTarget = swipeRefreshLayout.getChildAt(0);

swipeTarget.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw() {
        dragDistance = swipeTarget.getTop() - swipeRefreshLayout.getTop();
        return true;
    }
});
于 2014-07-23T16:15:39.837 回答