MentionEditText新手教程:3行代码实现@提及高亮,Android入门自定义EditText控件
【免费下载链接】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
MentionEditText 是一款轻量级的 Android 自定义 EditText 控件,仅用 3 行代码就能实现@提及高亮,并内置智能删除、智能选中、'@'输入检测四大能力,是打造社交、评论、聊天类 App 的必备工具。🚀
即使你刚接触 Android 开发,跟着本指南也能在 3 分钟内把这个Android 自定义 EditText 控件集成进项目。
MentionEditText是什么?@提及的4大核心功能
MentionEditText 继承自 AppCompatEditText,因此可以像普通 EditText 一样直接使用——声明即用,输入 "@xxx" 会自动高亮。它的 4 大核心功能如下:
| 功能 | 说明 | 上手难度 |
|---|---|---|
| ✨ @提及高亮 | 自动为 @xxx 文字上色 | 声明即生效 |
| 🗑️ 智能删除 | 删除提及时一键删整段,无需逐字删 | 内置 |
| 🎯 智能选中 | 选中 @xxx 时整段被选中 | 内置 |
| 🔔 '@'输入检测 | 输入 @ 时自动弹出成员选择面板 | 一行代码回调 |
完整接口在源码 MentionEditText.java 中,功能总览可参考 README.md。
1分钟安装:添加MentionEditText依赖
在项目根目录的build.gradle中,先添加 JitPack 仓库,再引入一行依赖即可:
repositories { maven { url "https://jitpack.io" } } dependencies { implementation 'com.github.luckyandyzhang:MentionEditText:1.0.0' }💡 添加后同步一次 Gradle 工程即可。项目采用 Apache 2.0 协议(详见 LICENSE.txt),可放心用于商业项目。
3行XML即可使用:声明MentionEditText控件
在布局文件里,把EditText换成MentionEditText,只需3 行:
<io.github.luckyandyzhang.mentionedittext.MentionEditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" />运行 App 后输入 "hello @world",你会发现 "@world" 自动变成红色——默认高亮色为红色,默认正则支持中文、英文、数字和连字符。
3行代码搞定:获取@提及列表并设置高亮颜色
在 Java 代码中,只需 3 行即可完成常用操作:
MentionEditText editText = (MentionEditText) findViewById(R.id.editText); // 1. 获取所有@提及(传 true 返回不带 @ 的名字,如 "world") List<String> mentions = editText.getMentionList(true); // 2. 修改高亮颜色(可选) editText.setMentionTextColor(Color.parseColor("#2196F3"));💡getMentionList(true)的第一个参数:传true返回"不带 @"的名字,方便直接作为用户列表提交给服务器;传false则保留 "@"。
进阶技巧:检测'@'字符并弹出成员选择面板
这是最实用的功能!当用户在评论框输入 "@" 时,可自动弹出"成员选择"面板——微博、Twitter 的提及功能就是这么实现的:
editText.setOnMentionInputListener((tag) -> { // 检测到 '@' 被输入时,弹出成员选择器 showMentionPicker(); });配合getMentionList(),你可以快速搭建完整的"@提及"交互体验。
@提及高亮是怎么实现的?(20秒看懂原理)
MentionEditText 仅靠两步就实现了高亮,逻辑非常易懂:
- 正则匹配:用默认规则
@[\u4e00-\u9fa5\w\-]+找出文本中所有 @提及; - Span 上色:通过
ForegroundColorSpan为匹配区间着色,每次文本变化时自动重新高亮。
完整实现细节可查阅源码 MentionEditText.java。
常见问题解答(FAQ)
Q:能自定义 @提及的匹配正则吗?A:可以。调用setPattern("@", "你的正则")即可,例如支持 #话题 等其他标签。
Q:会影响我原有的 EditText 吗?A:不会。MentionEditText 是普通 EditText 的"即插即用"升级版,布局与用法完全一致,还能白赚 4 个功能。
Q:如何获取项目源码?A:执行git clone https://gitcode.com/gh_mirrors/me/MentionEditText,核心库位于library/模块,项目结构简洁、上手零门槛。
到这里,你就已经掌握了这款Android @提及高亮控件MentionEditText。无论是社交、评论还是 IM 应用,这个"3行代码"级的小工具,都能让你的 App 瞬间变得专业又贴心。✨
【免费下载链接】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),仅供参考