80,351
社区成员
发帖
与我相关
我的任务
分享
hhsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
hsv.scrollTo(scrollX,scrollY);
}
});
hsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
hhsv.scrollTo(scrollX,scrollY);
}
});
@Override
public boolean onTouchEvent(MotionEvent ev) {
boolean b = super.onTouchEvent(ev);
shsv.scrollTo(getScrollX(), 0);
return b;
}
[/quote]
你不能直接在 onTouchEvent接收所有的事件呀,这样所有的触摸事件都会造成滚动 你应该在MotionEvent.ACTION_MOVE的时候,move了多少就滚动多少 例如这样:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
记录下触摸按下的时候的位置
break;
case MotionEvent.ACTION_MOVE:
与触摸按下时候的位置比较,变化多少就滑动多少
break;
case MotionEvent.ACTION_UP:
滑动停止
break;
}
return super.onTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
boolean b = super.onTouchEvent(ev);
shsv.scrollTo(getScrollX(), 0);
return b;
}