在onRefresh()开始之前,SwipeRefreshLayout检测向下滑动事件

时间:2014-04-28 04:55:40

标签: android android-layout swiperefreshlayout

我想检测用户何时下拉以进行刷新

(ActionBar下的刷新线开始扩展到其UI宽度)。

我想用消息替换ActionBar(“向下滑动到刷新”),但是,

我不知道应该用哪个事件来调用我的函数。

1 个答案:

答案 0 :(得分:2)

您可以扩展SwipeRefreshLayout,覆盖onTouchEvent,并对ACTION_DOWN事件进行更改,即:

public class MySwipeRefreshLayout extends SwipeRefreshLayout {

    private Runnable onActionDown, onActionUp;

    public MySwipeRefreshLayout(Context context, AttributeSet attributeSet) {
        super(context,attributeSet);
    }

    public void setOnActionDown(Runnable onActionDown) {
        this.onActionDown = onActionDown;
    }

    public void setOnActionUp(Runnable onActionUp) {
        this.onActionUp = onActionUp;
    }

    @Override
    public boolean onTouchEvent (MotionEvent ev) {
        if (ev.getAction() == ev.ACTION_DOWN) {
            if (onActionDown != null) {
                onActionDown.run();
            }
        } else if (ev.getAction() == ev.ACTION_UP) {
            if (onActionUp != null) {
                onActionUp.run();
            }
        }
        return super.onTouchEvent(ev);
    }
 :
 :
}

确保在布局中使用扩展类。然后,在您的视图中,您可以将Runnable传递给setOnActionDown以更新操作栏或其他任何您想要的内容....