场景:
1.支付控件时,需要随机布局软键盘
2. 电视机顶盒项目需要用到键盘输入,众所周知,电视的遥控按键较少,无法满足输入的需求,如要输入英文、数字、符合组合的字母时。遥控器的按键就无法满足。
1、关于输入法焦点问题。
Android SoftKeyBoard 输入法默认在横屏模式下,会全屏显示,可以通过 onEvaluateFullscreenMode() 重载来控制。
- public boolean onEvaluateFullscreenMode() {
- // TODO Auto-generated method stub
- // 设置输入法在横屏模式下不全屏
- return false;
- }
经过多次测试 Android 系统管理View的焦点的 顺序是这样的,
- IF( 输入法显示)
- 焦点由输入法控制
- ElSE
- 由View获得焦点和ONKey的所有事件
也就算说输入法的优先级高于View,可以在InputMethodService 重载onKeyDown()、onKeyUp()来控制key事件的传递。
2、关于KeyBoardView 与KeyBoard。
KeyBoard 键盘布局可以xml 文件产生,KeyBoardView继承了View ,可以当做View一样来使用它。KeyBoardView通过 .setKeyboard()方法设置键盘,即可将键盘放入View中。
参考链接:
《在软键盘上绘制焦点并移动焦点》http://www.eoeandroid.com/blog-126933-105.html
《Android自定义软键盘的实现》 http://blog.csdn.net/hfsu0419/article/details/7924673