我想检测用户何时下拉以进行刷新
(ActionBar下的刷新线开始扩展到其UI宽度)。
我想用消息替换ActionBar(“向下滑动到刷新”),但是,
我不知道应该用哪个事件来调用我的函数。
答案 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以更新操作栏或其他任何您想要的内容....