решение моей проблемы после Linkify удалить метод прокрутки TextView и обрабатывать действия обнаружения ссылки LinkMovementMethod в onTouchEvent в TextView.
@override
public boolean onTouchEvent(MotionEvent event) {
TextView widget = (TextView) this;
Object text = widget.getText();
if (text instanceof Spanned) {
Spannable buffer = (Spannable) text;
int action = event.getAction();
if (action == MotionEvent.ACTION_UP
|| action == MotionEvent.ACTION_DOWN) {
int x = (int) event.getX();
int y = (int) event.getY();
x -= widget.getTotalPaddingLeft();
y -= widget.getTotalPaddingTop();
x += widget.getScrollX();
y += widget.getScrollY();
Layout layout = widget.getLayout();
int line = layout.getLineForVertical(y);
int off = layout.getOffsetForHorizontal(line, x);
ClickableSpan[] link = buffer.getSpans(off, off,
ClickableSpan.class);
if (link.length != 0) {
if (action == MotionEvent.ACTION_UP) {
link[0].onClick(widget);
} else if (action == MotionEvent.ACTION_DOWN) {
Selection.setSelection(buffer,
buffer.getSpanStart(link[0]),
buffer.getSpanEnd(link[0]));
}
return true;
}
}
}
return false;
}
Таким образом, у меня есть обнаружение Link_Click (выполняется только с пользователем касается ссылки, а не весь TextView) и я не весь LinkMovementMethod.
Да, вы должны использовать onClickListener для вашего TextView, а не onTouch. – Carnal
удалите касание и добавьте событие ручного щелчка –
OnClick повлияет на весь текст. Мне просто нужно событие click только для ссылки. Допустим, у меня есть текст как «Lorem ipsum dolor sit amet, consectetuer ullamcorper mollis. Sit totam ut ut sit quisque, www.google.com lectus quam laoreet, nam morbi interdum habitasse« Только google.com должен получить событие click. не весь текст. потому что в listview уже есть событие click элемента. –