由于工作需求,需要在SwipeRefreshLayout刷新时屏蔽点击事件。
直接从事件分发下手,自定义MySwipeRefreshLayout继承自SwipeRefreshLayout重写dispatchTouchEvent方法。
public class MySwipeRefreshLayout extends SwipeRefreshLayout {
public MySwipeRefreshLayout(@NonNull Context context) {
super(context);
}
public MySwipeRefreshLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (isRefreshing())
//消费点击事件
return true;
else
return super.dispatchTouchEvent(ev);
}
}
结束了。