美文网首页
让EditText中的链接即可点击又可编辑

让EditText中的链接即可点击又可编辑

作者: Pin_ZL | 来源:发表于2017-07-29 12:11 被阅读0次

    最近在做项目时,检查项模块需要支持可编辑,同时也要支持点击链接跳转。

    也就是说,EditText没有焦点时,链接应该可点。然而,当获得焦点时,应该让用户可以编辑链接。

    添加一个OnFocusChangeListener来获取焦点的改变非常容易,但是用户如何改变焦点呢?(因为点击链接会使得浏览器被打开)

    长按是一种解决方法。第二种办法是点击EditText的空白区域,如图:

    不幸的是由于LinkMovementMethod的问题,就算文本最后一部分是空白的,点击它也相当于点击了链接

    我发现这个问题只发生在最后一个字符是链接的情况下,那么如果我在文本最后添加一些内容呢?

    // Make links in the EditText clickable

    editText.setMovementMethod(LinkMovementMethod.getInstance());

    // Setup my Spannable with clickable URLs

    Spannable spannable =newSpannableString("http://blog.danlew.net");

    Linkify.addLinks(spannable, Linkify.WEB_URLS);

    // The fix: Append a zero-width space to the Spannable

    CharSequence text = TextUtils.concat(spannable,"\u200B");

    // Use it!

    editText.setText(text);

    现在点击空白的部分不会导致链接跳转了,我也可以切换到编辑模式了。

    非常巧妙!

    相关文章

      网友评论

          本文标题:让EditText中的链接即可点击又可编辑

          本文链接:https://www.haomeiwen.com/subject/manqlxtx.html