我在我的布局中使用 SwipeRefreshLayout,我需要显示一个动画来调整已被拉下的距离。
到目前为止,我还没有找到任何方法来检测已拉出的实际距离。SwipeRefreshListener 只检测是否发生了刷新。
任何帮助,将不胜感激。
我在我的布局中使用 SwipeRefreshLayout,我需要显示一个动画来调整已被拉下的距离。
到目前为止,我还没有找到任何方法来检测已拉出的实际距离。SwipeRefreshListener 只检测是否发生了刷新。
任何帮助,将不胜感激。
要监控拖动距离,您可以简单地跟踪 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;
}
});