2017-05-30 105 views
1

类InputMethodManager中showSoftInput方法的用途是什么?我是Android新手,对我来说documentation不是很清楚:InputMethodManager showSoftInput方法

如果需要,显式请求当前输入法的软输入区域显示给用户。如果用户与您的视图进行交互,并以表示他们希望开始对其执行输入的方式,请调用此方法。

从我理解它打开键盘,我说得对吗?为什么我们要用这种方法,不要触摸EditText自动打开键盘?

回答

1

不,触摸编辑文本不会自动打开软键盘。这只是默认行为。在引擎盖下,当您触摸编辑文本时,会发生一系列事件。最终,Android框架将在键盘的IMS上调用showSoftInput。这是键盘有机会决定它不想出于某种原因显示并且如果没有显示则返回false。例如,我相信在Swype中,如果设备上的硬件键盘已经滑出,理论上他们希望使用硬件键盘,那么我们就不会显示键盘。

大多数情况下,你只是要在这里使用默认实现,或者做一些小的检查然后回到默认实现。

+0

那么在我的项目中,我有一个简单的EditText输入名字和姓氏,以前的开发人员已经在每个EditText上添加了一个View.OnTouchListener,它检查MotionEvent.ACTION_UP是否使用showSoftInput方法。值得保留这段代码还是可以删除它? – Mouss

+1

您应该可以将其删除。当键盘应用程序被要求隐式地决定不显示的情况下,应该离开上面提到的角落案例 –