android在拖放的同时滚动
|
嗨,我正在尝试在ListView上进行拖放。效果很好。但是我失去了单击和滚动的能力。如何保留这两个?我认为拖放应该在长按该项目而不是正常按下时进行。这是位于扩展ListView的MyListView中的onTouch
@Override
public boolean onTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
final int x = (int) ev.getX();
final int y = (int) ev.getY();
if (action == MotionEvent.ACTION_DOWN && x < this.getWidth()/4) {
this._dragMode = true;
}
if (!this._isDragNDrop)
return super.onTouchEvent(ev);
switch (action) {
case MotionEvent.ACTION_DOWN:
this._startPosition = pointToPosition(x,y);
if (this._startPosition != INVALID_POSITION) {
int mItemPosition = this._startPosition - getFirstVisiblePosition();
this._dragPointOffset = y - getChildAt(mItemPosition).getTop();
this._dragPointOffset -= ((int)ev.getRawY()) - y;
startDrag(mItemPosition,y);
drag(x,y);
}
break;
case MotionEvent.ACTION_MOVE:
drag(x,y);
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
default:
this._dragMode = false;
//_isDragNDrop = false;
this._endPosition = pointToPosition(x,y);
stopDrag(this._startPosition - getFirstVisiblePosition());
if (this._dropListener != null && this._startPosition != INVALID_POSITION && this._endPosition != INVALID_POSITION)
this._dropListener.onDrop(this._startPosition, this._endPosition);
break;
}
return true;
}
没有找到相关结果
已邀请:
5 个回复
揽芳僵迷仇
厢界山攀
} 一段时间未进行任何处理,已更新以反映最新更改。
混侩闯空坷
担每棱绰
...
希望它会帮助某人。
翁茄口霉氖