ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

5分钟给Android项目加上@提及高亮:MentionEditText集成完整教程(从build.gradle到第一次高亮)

5分钟给Android项目加上@提及高亮:MentionEditText集成完整教程(从build.gradle到第一次高亮) 5分钟给Android项目加上提及高亮MentionEditText集成完整教程从build.gradle到第一次高亮【免费下载链接】MentionEditTextMentionEditText adds some useful features for mention string(xxxx), such as highlight, intelligent deletion, intelligent selection and input detection, etc.项目地址: https://gitcode.com/gh_mirrors/me/MentionEditTextMentionEditText 是一个轻量的 Android 开源组件让你的 EditText 一键拥有提及高亮、智能删除、智能选中和 输入检测四大能力。本教程从 build.gradle 依赖配置讲起带你5分钟看到第一次 红色高亮效果全程无复杂概念新手也能一次跑通。 MentionEditText 能解决什么问题聊天、评论、协作类 App 中某人 是非常常见的场景。原生的 EditText 对 字符串毫无感知痛点MentionEditText 的能力 后面的名字淹没在正文里自动高亮所有 提及 实时染成醒目颜色光标能停进名字中间删除很反直觉智能删除光标落在提及词附近时自动对齐到边界一次删除整个词选中一个词总是选一半智能选中点按/拖选自动扩展为完整的 提及 单元想弹出成员列表却不知道用户按了 输入检测监听器在 被键入的瞬间回调整个库只有一个核心类 MentionEditText.java继承自AppCompatEditText体积小、无额外依赖负担适合快速集成。✅ 开始前的准备Android Studio 任意较新版本你的项目已使用 AppCompatandroidx.appcompat或旧版com.android.support:appcompat-v7网络可访问 JitPack 仓库依赖通过它分发仓库地址直接抄 README.md 的 Usage 部分即可本组件采用 Apache License 2.0 开源协议详见 LICENSE.txt商用完全无压力。 集成步骤从 build.gradle 到布局文件第 1 步添加 build.gradle 依赖在项目app模块的build.gradle的dependencies中加入一行dependencies { // MentionEditText提及高亮组件 implementation com.github.luckyandyzhang:MentionEditText:1.0.0 }别忘了同步 Gradle 项目。依赖坐标与仓库配置以项目 README.md 中 Usage 章节为准。第 2 步在布局 XML 中替换 EditText把界面里需要支持提及的EditText换成MentionEditText写法与普通 EditText 完全一致io.github.luckyandyzhang.mentionedittext.MentionEditText android:idid/editText android:layout_widthmatch_parent android:layout_heightwrap_content /改完这一行你其实已经获得了一半的能力——默认正则和默认高亮色开箱即用。 5分钟完成第一次高亮在 Activity 中做三件事就能完整跑通对应 MentionEditText.java 中的公开 APIMentionEditText editText findViewById(R.id.editText); // 1. 取当前文本里的所有 提及返回 Andy 而不是 Andy ListString mentions editText.getMentionList(true); // 2.可选自定义高亮颜色默认是红色 editText.setMentionTextColor(Color.BLUE); // 3.可选检测 键入用来弹出成员选择列表 editText.setOnMentionInputListener(() - showMemberPicker());运行 App输入hello world 123 Test你会看到 world、Test 立刻被染成高亮色——第一次高亮完成。几个开箱即用的默认行为来自 MentionEditText.java 的常量定义默认正则[\u4e00-\u9fa5\w\-]即 后跟中文、字母、数字、下划线或连字符中英文用户名都能识别默认高亮色红色第 236 行初始化自动关闭系统输入法联想避免建议词干扰高亮渲染 核心 API 速查表API作用位置getMentionList(true)提取文本中全部 提及可去 号、自动去重MentionEditText.javagetMentionList(tag, true)按标签提取适合多类型标记如 人名、#话题MentionEditText.javasetMentionTextColor(color)设置高亮颜色MentionEditText.javasetPattern(pattern)/addPattern(tag, pattern)自定义/追加正则支持多标签并存MentionEditText.javasetOnMentionInputListener(...) 键入回调接入成员列表的理想时机MentionEditText.java 小技巧addPattern可以叠加多个规则比如同时高亮用户和#话题互不影响。❓ 常见问题 FAQQ1高亮颜色改了没生效确认调用的是setMentionTextColor()且传入的是Color.RED或Color.parseColor(#3366FF)这类颜色值默认红色在第 236 行初始化任何文本变化都会按新颜色重刷。Q2支持哪些字符的用户名默认正则覆盖中文、字母、数字、下划线、连字符。想匹配其他格式如带点号的邮箱式用户名用setPattern()换一条正则即可。Q3setText()之后光标跑到哪里去了组件做了贴心处理程序设置文本后光标会自动定位到末尾MentionEditText.java不用手动setSelection。Q4和自定义 Span 会冲突吗高亮通过ForegroundColorSpan实现每次文本变化先清理旧 span 再重刷第 254-258 行同一位置不要叠加自己的前景色 span 即可。 总结回顾一下这条 5 分钟路径build.gradle加一行依赖并同步XML 里把EditText替换成MentionEditTextJava 里按需调用getMentionList、setMentionTextColor、setOnMentionInputListener就这三步你的 Android 输入框已经具备了完整的 提及体验。源码只有 415 行想深入智能选中的实现原理时直接读 MentionEditText.java 的onSelectionChanged方法第 104-135 行即可——它正是光标无法停在名字中间这一手感的幕后功臣。【免费下载链接】MentionEditTextMentionEditText adds some useful features for mention string(xxxx), such as highlight, intelligent deletion, intelligent selection and input detection, etc.项目地址: https://gitcode.com/gh_mirrors/me/MentionEditText创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表