@Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); boolean flag = false; switch (action) { case MotionEvent.ACTION_DOWN: try { MovementMethod m = getMovementMethod(); setMovementMethod(null); CharSequence sequence = getText(); if (sequence instanceof Spannable) { boolean mt = m.onTouchEvent(this, (Spannable) getText(), event); if (mt) { event.setAction(MotionEvent.ACTION_UP); mt = m.onTouchEvent(this, (Spannable) getText(), event); event.setAction(MotionEvent.ACTION_DOWN); } boolean st = super.onTouchEvent(event); setMovementMethod(m); setFocusable(false); flag = mt || st; } } catch (Exception e) { } break; default: break; } return flag; }
@SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) { MovementMethod mm = getMovementMethod(); CharSequence text = getText(); if (mm != null && (text instanceof Spannable) && handleTouchEvent(event)) { mm.onTouchEvent(this, (Spannable) text, event); if (dispatchToParent) { return false; } } return super.onTouchEvent(event); }
@Implementation public boolean onTouchEvent(MotionEvent event) { boolean superResult = super.onTouchEvent(event); if (movementMethod != null) { boolean handled = movementMethod.onTouchEvent(null, null, event); if (handled) { return true; } } return superResult; }
@Override public boolean onTouchEvent(MotionEvent event) { CharSequence mText = getText(); MovementMethod mMovement = getMovementMethod(); if (getText() instanceof Spannable) { if (mMovement != null) { boolean handled = mMovement.onTouchEvent(this, (Spannable) mText, event); if (handled) return true; } // final boolean textIsSelectable = isTextSelectable(); ClickableSpan[] links = ((Spannable) mText).getSpans(getSelectionStart(), getSelectionEnd(), ClickableSpan.class); if (links.length > 0) { return super.onTouchEvent(event); } else { return false; } } else { return false; } }