//onScrollChanged方法是View里的protect方法,需要自定义View继承Scrollview,通过设置监听来调用此方法
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollViewListener != null) {
scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
}
}
/**
* 用户在滑动时隐藏键盘
*/
@Override
public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) {
//是否是触摸事件
if (mIsOnTouch){
mIsOnTouch = false;
//其他事件引起的界面滑动
if (((MainActivity) activity).mIsClickTrigger){
((MainActivity) activity).mIsClickTrigger = false;
return;
}
InputMethodManager manager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (Math.abs(y - oldy) > 10) {//滑动距离超过10像素就收起键盘
if (manager.isActive()) {
manager.hideSoftInputFromWindow(et.getWindowToken(), 0);
}
}
}
}