私はドラッグ可能なビューを作成し、ドロップされたビューからドロップターゲットビューまでの距離に応じてドロップターゲットビューのアルファを変更しようとしています。このためには、ドラッグされたビューの現在の位置を継続的にチェックする方法が必要です。私はOnTouchListener
を使って実装しようとしていました。クラスMyTouchListener
ためモーションイベント 'MotionEvent.ACTION_MOVE'がタッチに登録されていません
myTextView.setOnTouchListener(new MyTouchListener());
コード:MainActivity's
方法onCreate
で
コード
class MyTouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.i("i", "Touched");
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN: {
ClipData clipData = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(clipData, shadowBuilder, view, 0);
view.setVisibility(View.INVISIBLE);
break;
}
case MotionEvent.ACTION_MOVE: {
Log.i("i", "this one is never called");
break;
}
}
return true;
}
}
私は私のTextViewのドラッグを開始した後、出力をログには2倍と他には何を "感動しました"。 MotionEvent.ACTION_MOVEが呼び出されないケースを誰にでも教えてもらえますか? これは、私がしようとしていることを実装する方法でない場合は、より適切な方法に私を導くことができますか?