gpt4 book ai didi

android 在拖放时滚动

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:56 26 4
gpt4 key购买 nike

您好,我正在尝试在 ListView 上进行拖放操作。它很好用。但是我失去了点击和滚动的能力。我如何保留这两个?我在想拖放应该发生在长按项目而不是正常按下时。这是我的 onTouch,它位于扩展 ListView 的 MyListView 中

@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;
}

最佳答案

我刚刚在我的应用程序中实现了拖放 ListView ,拖动是通过长按一个项目开始的。

源代码在 GitHub 上:DraggableListView , 我有一个 blog post来描述它。希望对你有帮助。

关于android 在拖放时滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5427709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com