ドラッグ アンド ドロップで他のテーブルに移動できるテーブル行を含むプロジェクトがあります。これらの行も強調表示できるようにしたいので、focusable と focusableontouchmode を true に設定し、背景を list_selector_background に設定し、行をクリックできるようにしました。OnTouchListener を選択しなくても問題なく動作しますが、onTouchListener を行に設定すると、クリックするとすぐにドラッグ アンド ドロップ プロセスが開始されます。シングルクリックとドラッグアンドドロッププロセスの開始を区別できるように、onTouchListener のレイテンシーを設定する方法はありますか? (ドラッグを開始するには、行をクリックしたままにする必要があります)
OnTouchListener:
private final class MyTouchListener implements OnTouchListener {
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(
view);
view.startDrag(data, shadowBuilder, view, 0);
view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
}
行:
teacherRow.setId(tid);
teacherRow.setBackgroundResource(drawable.list_selector_background);
teacherRow.setFocusable(true);
teacherRow.setFocusableInTouchMode(true);
teacherRow.setClickable(true);
teacherRow.setOnTouchListener(new MyTouchListener());
行の OnClickListener で解決しようとしましたが、それもうまくいきませんでした