我在布局中使用SwipeRefreshLayout,我需要显示一个动画,该动画可以调整到已经拉下的距离。
到目前为止,我还没有找到任何方法来检测拉出的实际距离。 SwipeRefreshListener仅检测是否发生了刷新。
任何帮助将不胜感激。
答案 0 :(得分: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;
}
});