1、背景
在之前的一些版本开发中,需要在键盘候选区的顶部添加一个View,但发现当键盘真在显示时,如果我们动态的往候选区的顶部加一个View或者是去掉一个View,键盘都会出现闪动的现象,为了找到键盘闪动的原因我们先对键盘的布局比较清晰,后面也是经过使用一些特殊的方案,解决了键盘的闪动问题,现在就来对这一问题进行总结。
这里主要是分两部分来讲解,先将InputMethodService的创建过程,键盘界面的创建过程,后面在分析键盘出现闪动的原因及解决方案。
2、InputMethodService
Android输入法框架(IMF)主要由三部分组成
● 文本编辑框(客户端):用于展示输入法应用生成的文本
● 输入法应用(IME):核心功能是生成文本。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI
●(输入法服务)(IMM):把IME生成的文本传递到编辑框,并决定当前输入法的创建、展示、隐藏等操作。InputMethodManager 作为InputMethodManagerService的代理,文本编辑框(客户端)和输入法应用都是通过InputMethodManager来和InputMethodManagerService进行通信。
而我们今天要讲解的是InputMethodService这个服务类是输入法框架中很重要的一个类,InputMet