1

我有一个要添加 onClickListener 的视图。麻烦的是,即使用户执行拖动操作,侦听器也会触发。如何在用户拖动时抑制单击,并且仅在单击而不拖动时进行处理?

为了完整起见,我正在使用类似下面的东西来添加 onClickListener -

private void installClickHandler(final GraphicalView x) {
    x.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(getApplicationContext(), BillTablesActivity.class);
            startActivity(myIntent);
            }
        }
    });
}
4

1 回答 1

1

设置一个onTouchListener(),如果你拖动它返回 true,或者返回 false 否则允许你的OnClickListener处理事件。换句话说,由您决定是否将触摸视为点击。

要确定某事是单击还是拖动(或长按),您的OnTouchListener的实现将必须跟踪事件,ACTION_DOWNACTION_UP比较两者之间的时间。短时间间隔是单击,较长时间间隔是拖动或长按。

具体实现留给读者练习:)

于 2012-06-22T23:26:39.473 回答