2013-03-14 125 views
6

任何人都可以请解释为什么软键盘会出现并消失吗?为什么Android软键盘会出现?

我有一堆不同的控件,主要是EditTexts和按钮的布局。当我第一次显示该页面时,布局顶部的EditText具有焦点,软键盘覆盖屏幕的底部45%

我认为键盘出现是因为EditText有焦点,所以我决定给我的页面底部的按钮,而不是通过。 。 。

butDone.setFocusableInTouchMode(true); 
    bResult = butDone.requestFocus(); 

...右后的setContentView()。就按钮而言,这是有效的。该botton得到了重点和EditText不再有焦点,但键盘仍然在那里。最终我摆脱了键盘通过

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

但很明显,我的关于EditText焦点的理论是错误的。那么是否有人可以解释一下键盘显示的“规则”,或者是这些规则的链接?提前致谢!

回答

0

默认情况下,如果您没有在布局的XML中定义焦点的任何内容,则默认情况下,第一个EditText将获得焦点。

检查this回答获取更多信息。如果您不希望键盘显示出来,而不是忽略键盘,则应该使用此解决方案。

+0

那么你是说即使我把焦点放在代码中的按钮上,它忽略了这一点,因为焦点没有在XML中指定? – user316117 2013-03-15 13:42:38

+0

不,我只是说这是一个更好的解决方案,指定在XML上,而不是让Android在默认情况下专注于第一个EditText,然后以编程方式更改它。 – Edgar 2013-03-15 15:35:30