今天遇到一个比较奇怪的问题,手机横屏后,手动调用软件盘后,弹出的软键盘没有候选栏,中文输入法无法使用。
解决方案如下:
软件盘最主要的样式是全屏模式和非全屏模式;在竖屏的情况下没有全屏模式,在横屏的时候两种模式都有可能。如果用户是通过View调用输入法,在非全屏模式需要设置outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI,否则会出现软键盘没有候选栏的情况,导致无法输入中文。
/**
* 解决横屏调用软键盘,会出现软键盘没有候选栏的情况,导致无法输入中文
*/
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;
// outAttrs.inputType = EditorInfo.TYPE_TEXT_VARIATION_PASSWORD;
// outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE;
return null;
}
在View上增加这个接口后,调用出来的软键盘标有候选栏了。