原创文章,转载请标注出处----

IMF(Input Method Frameworks)是Android输入法的Framework框架,其中最主要的是InputMethodService,他继承于AbstractInputMethodService。

它主要由以下几个组件构成,完成输入法的相关UI,和文字的输出。

1. Soft Input View

这是软键盘的Input Area,主要完成touch screen下和用户的交互输入。onCreateInputView() 被调用来进行soft inputview的实例化;onEvaluateInputViewShown() 决定是否显示soft inputview;当状态改变的时候,调用updateInputViewShown() 来重新决策是否显示soft inputview。

2. Candidates View

Candidates View也是输入法中一个相当重要的组件。当用户输入字符的时候,显示相关的列表。停止输入的时候,有会自动消失。onCreateCandidatesView() 来实例化自己的IME。和soft inputview不同的是Candidates View对整个UI布局不会产生影响。setCandidatesViewShown(boolean) 用来设置是否显示Candidates View。

3. 输出字符

字符的输出是InputMethodService最核心的功能,IME通过 InputConnection 从IMF来获得字符输出。并且通过不同的editor类型来获取相应的支持。通过 onFinishInput() onStartInput(EditorInfo, boolean) 方法来进行输入目标的切换。

另外,onInitializeInterface() 用于InputMethodService在执行的过程中配置的改变;

onBindInput() 切换一个新的输入通道;

onStartInput(EditorInfo, boolean) 处理一个新的输入。

更多相关文章

  1. android视图组件容器组件与布局管理器LinearLayout
  2. android启动activity文本框不打开输入法界面
  3. Android 3.0 r1中文API文档(103) —— InputMethodManager [输入
  4. 关于 android 输入法 adjustPan无效的解决方法
  5. android用户界面-组件Widget-进度条ProgressBar
  6. flutter调用android原生组件
  7. Android EditText限制输入字符的5种实现方式
  8. Android 短信模块分析(二) MMS中四大组件核心功能详解

随机推荐

  1. Android 应用冻结流程分析
  2. Android 屏幕适配方案
  3. 设置ListView每条数据之间的间隔
  4. Android Animation动画详解(一): 补间动画
  5. Android——RecyclerView.scrollBy源码分
  6. 【Android 系统开发】Android JNI 之 JNI
  7. idea编译下报错 Error:Android Dex: [Pro
  8. Android ImageView圆角图片的简单实现
  9. android 双卡手机发短信/判断手机是否为
  10. android 使用Freetype 提取字模,并可转化