下のDragNDropListViewのコードを見てください。
@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) {
mDragMode = true;
}
...
上記のコードの代わりに、これを使用して、リスト ビューの中央でのみドラッグ アンド ドロップを有効にします。
@Override
public boolean onTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
final int x = (int) ev.getX();
final int y = (int) ev.getY();
int mWidth = this.getWidth() / 4; //calculating the quarter part
if (action == MotionEvent.ACTION_DOWN && x >= (mWidth * 2) && x < (mWidth * 3) ) {
mDragMode = true;
}
...
1) xの値が何であれ、ドラッグアンドドロップを有効にしたい場所のようにチェックする必要があります。
2) ユーザーに完全な特権を与えて、ユーザーが lsit アイテムの任意のポイントからドラッグできるようにするには、これを使用します
if (action == MotionEvent.ACTION_DOWN ) //don't check for x-position.
{
..
}
上記のコードを見てください。
これがあなたを助けることを願っています。
ちなみに@Anshumanいい質問です。