这个是TextView点击跳转到长链接引起得bug,原因是调用了此方法。
textView.setMovementMethod(LinkMovementMethod.getInstance());
可以点进去看一下源码
public final void setMovementMethod(MovementMethod movement) {
if (mMovement != movement) {
mMovement = movement;
if (movement != null && mSpannable == null) {
setText(mText);
}
fixFocusableAndClickableSettings();
// SelectionModifierCursorController depends on textCanBeSelected, which depends on
// mMovement
if (mEditor != null) mEditor.prepareCursorControllers();
}
}
private void fixFocusableAndClickableSettings() {
if (mMovement != null || (mEditor != null && mEditor.mKeyListener != null)) {
setFocusable(FOCUSABLE);
setClickable(true);
setLongClickable(true);
} else {
setFocusable(FOCUSABLE_AUTO);
setClickable(false);
setLongClickable(false);
}
}
可以看到里面调用了setLongClickable(true);这个方法,而且也是造车以上报错得问题得原因。
解放方法,就是将TextView得长按点击事件屏蔽掉或消费掉
俩种方法处理
TextView.setLongClickable(false);
TextView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});