Android仿QQ,网易邮箱客户端收件人控件
效果图
实现思路
这个功能首先想到的是安卓原生控件AutoCompleteTextView和MultiAutoCompleteTextView 前者用的还是比较多的,比如字符联想,最近搜索记录等用的都是前者比较多,后者要着重说下了,它是AutoCompleteTextView的升级版,主要区别是AutoCompleteTextView输入时只能提示一次(这个多次提示可能也可以通过自定义来实现,这里只说原生的对比),而MultiAutoCompleteTextView 中可以通过分隔符比如系统默认的英文逗号分隔符,空格等来实现输入时的多次提示,就是我们图上所示的多次提示功能,是不是很方便哪,这个控件确实很赞,之前没写这块,都不知道有这个原生的控件
因为我在做邮箱的功能,所以我下载了Android的系统邮箱源码
private MultiAutoCompleteTextView mToView; private MultiAutoCompleteTextView mCcView; private MultiAutoCompleteTextView mBccView;
可以看到,这是Android4.2的邮箱源码,用的都是原生的MultiAutoCompleteTextView,这三个分别是收件人,抄送,密送控件
mToView.setTokenizer(new Rfc822Tokenizer()); mToView.setValidator(addressValidator); mCcView.setTokenizer(new Rfc822Tokenizer()); mCcView.setValidator(addressValidator); mBccView.setTokenizer(new Rfc822Tokenizer()); mBccView.setValidator(addressValidator);
上面这个setTokenizer就是设置分隔符了,这个很关键,设置的分隔符,用来区别输入完成和下次输入的再次提示,所以很重要,setValidator就是验证输入的是否是邮箱,不是的话,给予用户错误提示,让其更改.
上面的基本上就是MultiAutoCompleteTextView最基本的操作和配置了,设置完MultiAutoCompleteTextView数据源,即下拉框中的提示数据,就基本完成了最简单的多次提示了。
下面我要说的是为这个多次提示加上样式,即是题目上所说的仿qq,网易输入框的样式,这里我在看android的源码时发现了一个牛逼的开源控件,这个控件其实就是继承自MultiAutoCompleteTextView实现的多样式,可扩展性很强的一个控件,已经有强大的轮子了,咱们就别造了,关键项目紧张,来不及造,造出来估计bug也会很多,废话不多说
/** * Gmail style auto complete view with easy token customization * override getViewForObject to provide your token view * <br> * Created by mgod on 9/12/13. * * @author mgod */ public abstract class TokenCompleteTextView<T> extends MultiAutoCompleteTextView implements TextView.OnEditorActionListener {//Logging public static final String TAG = "TokenAutoComplete";
这个就是android源码中最新使用的控件,我估计qq,网易也是用的这个开源控件,确实很强大,扩展性特别好,传入一个自定义的对象,根据咱们的业务自己来定义吧,样式等都可以修改,我已经接入了这个控件,确实好用,所以关键代码就不贴了,下面给大家个链接吧
https://github.com/splitwise/TokenAutoComplete
这个demo写的很详细了,大家多多学习,多看安卓的源码,会有意想不到的收获!
Android仿QQ,网易邮箱客户端收件人控件相关推荐
- C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现
导读部分 ----------------------------------------------------------------------------------------------- ...
- Android仿keep运动轨迹动画,Android仿Keep运动休息倒计时圆形控件
仿Keep运动休息倒计时控件,供大家参考,具体内容如下 源码 控件本身非常非常简单,唯一难点在于倒计时期间动态增减时长,如果说动态增减时长是瞬间完成的,倒也没什么难度,但是如果是需要花一定时间做动画的 ...
- Android仿饿了么加减控件,Flutter + Native混合栈仿饿了么APP
前言 一个基于Flutter + Native混合开发的APP,请求数据均人为制造. 目前仅上传Android版本,iOS暂未上传 APK下载 Github地址 效果图: 实现功能: 首页 使用百度定 ...
- android 按钮回弹效果,Android仿IOS回弹效果 支持任何控件
本文实例为大家分享了Android仿IOS回弹效果的具体代码,供大家参考,具体内容如下 效果图: 导入依赖: dependencies { // ... compile 'me.everything: ...
- android 布局回弹,Android仿IOS回弹效果 支持任何控件
本文实例为大家分享了Android仿IOS回弹效果的具体代码,供大家参考,具体内容如下 效果图: 导入依赖: dependencies { // ... compile 'me.everything: ...
- DELPHI 7 仿QQ好友列表(RZ控件)
现在在做一个聊天程序,那么就需要有列表.所以自己做了一个 通过RZ控件和动态生成实现 DEMO 的效果 放到程序内的效果 DEMO下载地址: https://download.csdn.net/dow ...
- Android仿QQ空间底部菜单
之前曾经在网上看到Android仿QQ空间底部菜单的Demo,发现这个Demo有很多Bug,布局用了很多神秘数字.于是研究了一下QQ空间底部菜单的实现,自己写了一个,供大家参考.效果如下图所示: 点 ...
- Android仿QQ侧滑菜单
先上效果图: GIF图有点模糊,源码已上传Github:Android仿QQ侧滑菜单 ####整体思路: 自定义ItemView的根布局(SwipeMenuLayout extends LinearL ...
- 华为qq邮箱服务器密码忘了,华为自带的电子邮件APP怎么用?一招教你快速登录QQ/网易邮箱...
*本文来自花粉俱乐部@昌昌兔 很多粉粉们是不是困扰自己常用的QQ/网易邮箱无法在华为自带的电子邮件登入,而又不想下载QQ/网易邮箱APP.其实是因为QQ/网易邮箱的第三方设置安全验证问题.接下来,将为 ...
最新文章
- java线程 教程_Java多线程系列教程
- tcppwebbrower 关闭安全警报_【安全常识】燃气泄漏报警器,您的安全保护神!
- 哪个Java线程消耗了我的CPU?
- $.post把表单对象传递过去_FormData对象
- 初学WEB前端的建议,你不看给别人可惜了!
- java里面的pai_Java - ZhangPai - 博客园
- Python学习之路_day_08(函数介绍)
- python_正则表达式匹配ip
- 无线通信行业常用名词
- 使用phantomjs将网页转换成pdf或者长图片
- Jzoj5605 Zkb
- win10及VS2017安装配置mpich2
- 如何使用MySQL存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别?
- mysql 加上天数_MySQL Datetime添加天数?
- 数据库课程设计(DatabaseCourseDesign)
- 阿白数模笔记之灰色-马尔科夫模型(Grey Markov model)
- 分布式BASE理论:数据一致性模型!
- 【挖矿木马】记一次被挖矿木马攻击的过程(Redis被攻击)
- Keil MDK 和 IAR 两款ARM开发工具区别比较和Keil MDK 的下载,安装及常见问题解决
- OMNeT++学习(概述+框架)一
热门文章
- 使用Pixi.js编写JavaScript网页小游戏
- TextView 的 AutoLink 属性和 onLongClick 冲突
- H5+C3实现超炫酷图品切换效果
- 股票量化分析工具V2.0版-视频更新完毕!代码已上传!
- java猴子爬山_[算法]猴子爬山
- opencv之(多)手势识别
- kaggle住房预测项目——第1部分
- 【C】printf()使用占位符精细控制输出格式
- win10双屏幕设置,有一个不显示了
- Dynamics CRM2016 Subgrid之OnLoad event