我有一个包含表格行的项目,可以通过拖放将其移动到其他表格。我希望这些行也可以突出显示,我将 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 来解决它,但这也不起作用