‘壹’ android输入法是怎样调用的
Android软键盘强制弹出及隐藏输入法的方法:
很多应用中对于一个界面比如进入搜索界面或者修改信息等等情况,为了用户体验应该自动弹出软键盘而不是让用户主动点击输入框才弹出(因为用户进入该界面必然是为了更改信息)。具体实现这种效果的代码如下:
java代码
EditText editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();
InputMethodManager inputManager =
(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
首先要对指定的输入框请求焦点。然后调用输入管理器弹出软键盘。
警告:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能由于界面为加载完全而无法弹出软键盘。此时应该适当的延迟弹出软键盘如998毫秒(保证界面的数据加载完成)。实例代码如下:
java代码:
Timer timer = new Timer();
timer.schele(new TimerTask()
{
public void run()
{
InputMethodManager inputManager =
(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
},
998);
‘贰’ 平板电脑出现“ Android键盘已停止运行”这是什么意思怎么处理
此类问题多出现在三星平板电脑。
处理方式:
1,按下述操作:进入 设置---语言和输入法---在“键盘和输入法”中点击“默认”(黑体字)---点击“中文拼音--谷歌拼音输入法”。此操作是将"默认"更改为“中文拼音--谷歌拼音输入法”。
2,进入中文输入程序(如 搜索),即出现中文拼音键盘。
3,注意:中文输入键盘底部中间位置有一语言种类提示条(如显示“中文”),其左侧的一个地球样图案的按钮,千万别按,一按就出现“抱歉,Android 键盘已经关闭”的提示,并且键盘消失。
‘叁’ 【转】Android软键盘的全面解析
软键盘其实是一个Dialog
InputMethodService为我们的输入法创建了一个Dialog,并且对某些参数进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统会对当前的主窗口进行调整,以便留出相应的空间来显示该Dialog在底部,或者全屏。
其实这段话我们经常在各种软键盘博客所看到,但是大家并不知道Android是怎么为我们创建的这个Dialog,所以我先带大家来看下软键盘生成这块的源码,了解软键盘的生成流程。
我们先来看一下InputMethodService的继承关系:
因为InputMethodService属于服务,接下来我们先看一下服务的入口onCreate()方法:
通过上面的分析,我们怀疑这里的SoftInputWindow是软键盘弹出创建的Dialog对象,下面我们看下SoftInputWindow的源码。
看到这里大家就能明白了,为什么说软键盘就是一个Dialog。而且这里通过设置Gravity.BOTTOM来控制当前Dialog在Window中的位置。
在Android中,可以通过给Activity设置 windowSoftInputMode 这个属性来控制软键盘与Activity的主窗口的交互方式。
Activity 的主窗口与包含屏幕软键盘的窗口的交互方式,该属性的设置影响两个方面:
该设置必须是下面所列的值之一,或者是一个“state…”值加上一个“adjust…”值的组合,在任一组中设置多个值(例如,多个“state…”值)都会产生未定义结果。各值之间使用垂直条 (|) 分隔。
下面将通过例子来介绍 adjustNoting 、 adjustUnspecified 、 adjustResize 、 adjustPan 在软键盘弹出的区别:
非滚动布局xml
点击最下面的EditText12
滚动布局xml
通过上面的例子,我们可以完全理解adjust系列的各个参数的作用。而软键盘的显示和隐藏这里面需要并不多,而且内容并不算复杂,大家回去自己尝试下就可以。
在日常开发中,如果需要将软键盘的Enter键更改为其他键,可以设置其 android:imeOptions 属性,这个属性可以控制软键盘的Enter键,以及横屏情况下的软键盘显示状态。
该设置必须是下面所列的值之一,或者是一个“action…”值加上一个“flag…”值的组合,在action…组中设置多个值(例如,多个“action…”值)都会产生未定义结果,而flag….可以设置多个。各值之间使用垂直条 (|) 分隔
控制软键盘上的Enter键
横屏下控制软键盘
总结一下:
这里大部分的属性,已经介绍完毕,如果英语好的同学,可以去看下官方文档,可以更好的理解,并且本文以搜狗输入法为实践,可能其他的输入法与其显示的不同,但是功能应该都是一样的。
而如果要在横屏状态不希望软键盘全屏显示最好是将flagNoFullscreen和flagNoExtractUi结合使用,这样体验上会更好
android:imeOptions=”flagNoFullscreen|flagNoExtractUi”
Android官网的Api
如果需要监听软键盘的右下角的按键,需要为EditText设置setOnEditorActionListener()监听:
上面的方式,只是展示了如何监听各个按键的方法,如果需要消费事件,则需要return true。
(1)第一次写这么长的博客,感觉会有一些不足,各位看官如果有不合理的地方,或者有误的地方请直接指出。
(2)本来想整理成一个Demo的,后来简单看来下,该有的几乎都贴出来了,有需要的可以按需复制就可以。
(3)写完这篇博客之后,感觉博客干货还是不多,所以定位这篇文章算是总结性质加上实际案例性质的博客。
(4)Android软键盘的总结就差不多到这里,希望各位看官,如果看到这里有收获,就点点赞,灌灌水,顶一波,这样博主才有写下去的动力。
(5)感谢小辉同学的校验,调整了文章中不通顺的地方。
1.彻底搞定Android开发中软键盘的常见问题
http://blog.csdn.net/mynameishuangshuai/article/details/51567357
2.Android UI(EditText)详解
http://blog.csdn.net/qq_28057577/article/details/51919965?locationNum=12&fps=1
3.微信软键盘布局闪动问题
https://blog.dreamtobe.cn/2015/09/01/keyboard-panel-switch/
‘肆’ 华为P10在“添加虚拟键盘”时,无法关闭“Android 键盘”
问题现象:
在语言和输入法设置界面中,添加虚拟键盘时,Android 键盘(AOSP)为灰色。
问题原因:
为进一步保障手机数据的安全性,系统设计启用了文件级加密。如果用户设置将所有系统输入法全部禁用,且解锁类型设置为混合密码,此时默认使用未适配文件加密的输入法APK 将会出现无法调出输入法,导致用户您将无法进行解锁的场景。
‘伍’ Android键盘相应的PC键各是哪些
安卓(Android)x86常用键盘快捷键: Alt-F1 = 进入 console 模式 Alt-F7 = 回到 GUI 模式 Alt-F9 = 图形界面 Alt-F10 = 画面旋转 180 度 Alt-F10 = 画面旋转 180 度 Alt-F11 = 画面向左旋转 90 度 Alt-F12 = 画面向右旋转 90 度 Ctrl-P = 开启Android设定画面 "Windows 键"相当于 Android 的 Home 按钮。 "Esc" 相当于 Android 的 Back 按钮 F2 相当于 Android 的 Menu 按钮 F3 相当于 Android 的 Search 按钮 右边的菜单键(win和ctrl中间的键) = Android菜单键 返回键:鼠标右键/Esc键 menu键:鼠标滚轮 关机键:End键/F4键(2.2是短按。2/3好像是长按) 返回主界面:Home键/Windows键 中英文切换:Space+Shifta