0
我有一个可通过拖放操作移动到其他表格的项目。我希望这些行可以高亮显示,我将focusable和focusableontouchmode设置为true,将背景设置为list_selector_background并使行可点击。没有OnTouchListener选择工作正常,但如果我将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来解决它行,但没有工作要么
你应该提供一些你的代码。这将有所帮助。 – abc667 2013-02-23 18:43:17
已添加touch listnener代码 – knigge 2013-02-23 18:56:55