我使用这个优秀的标签lib:https://github.com/danylovolokh/HashTagHelper
然而,在这种情况下存在不良行为:
你好,我的上一个#word
如果最后一个ClickableSpan与TextView中的最后一个单词匹配,那么如果我没有点击这个主题标签但是在TextView中(最后),点击这个hastag就完成了!
这是你的截图:蓝色矩形是我的TextView;红十字会在此TextView中单击,但不会在我的上一个标签#word。
上在此库中,有此方法可指定主题标签。在我的例子中, nextNotLetterDigitCharIndex变量值为23(此值正确)。
if (nextNotLetterDigitCharIndex != -1) {
Spannable s = (Spannable) mTextView.getText();
CharacterStyle span;
if (mOnHashTagClickListener != null) {
span = new ClickableForegroundColorSpan(mHashTagWordColor, this);
} else {
// no need for clickable span because it is messing with selection when click
span = new ForegroundColorSpan(mHashTagWordColor);
}
s.setSpan(span, startIndex, nextNotLetterDigitCharIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
Ps:在标称模式下,此TextView包含多行。
答案 0 :(得分:0)
我遇到了同样的问题。我的解决方案是在最后一个clickableSpan之后添加一个空格字符。