私はonTouchEventメソッドを使用して、ドロップイベントとクリックイベントのドラッグ&を持つことができます。私は私のネクサス7(2012)の結果をテストし、それは本当に素晴らしい作業が、私のsmarphoneのAsus Zenfone上だ、それはないと私はなぜ見ることができない、ここに私のコードは次のとおりです。OnTouchEventがAsus Zenfoneでクリックを検出しない
button.setOnTouchListener(new View.OnTouchListener() {
private float startX, startY;
private long startClickTime;
@Override
public boolean onTouch(final View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
case MotionEvent.ACTION_MOVE:
if (v instanceof Button) {
Button button = ((Button) v);
if (button.getText().length() == 0) return true;
ClipData clipData = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new DragShadowBuilder(v, false, scale);
v.startDrag(clipData, shadowBuilder, v, 0);
DataHolder.getInstance().setCurrentText(button.getText().toString());
button.setText("");
}
return true;
case MotionEvent.ACTION_UP:
float endX = event.getX();
float endY = event.getY();
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if (isAClick(startX, endX, startY, endY) && clickDuration < CLICK_DURATION) {
v.performClick();
}
return true;
}
return false;
}
});
誰かが理由を見ました私のクリックは誘発されない?
編集:スクリーンショット
提案していただきありがとうございますが、私はすでにそのオプションを知っています。境界は素晴らしいです。私が言ったように、私はちょうど私のスマートフォンに問題があることを知っていることは間違いないと私はなぜエミュレーターと私のネクサスで働いているので、私は理由を理解することはできません... – zed13
タッチ可能な領域をカバーしています – 2D3D
私はスクリーンショットで私の質問を編集しましたが、何もありません... – zed13