有什么方法可以“修复”android的assinine键盘处理?

时间:2011-07-28 16:39:25

标签: android keyboard android-softkeyboard

首先,我知道关于android键盘的大约1000个其他问题...我知道我可以手动隐藏键盘从窗口或控件,并传入任何数量的标志,应该控制何时何地键盘弹出。

基本上,我的目标是在我的应用程序中使用PREDICTABLE键盘处理...除非明确告知要关注此控件和弹出键盘,否则它只会在用户点击文本编辑时弹出。

此应用程序非常广泛,并且手动尝试隐藏键盘甚至只是聚焦控件(明确隐藏每个编辑字段)。

我也知道我可以通过将焦点设置在非文本可编辑字段上来避免弹出键盘,但是,这看起来更像是一个黑客而不是其他任何东西。

所以我的问题是......有没有办法强迫app永远不会在新的对话框,片段等上自动弹出键盘... app wide?如果我希望此文本字段专注于新对话框,我将手动处理这些情况。另外,当先前聚焦的控件消失时,是否有任何自动处理键盘消失的方法?

我只是在那里得不到逻辑......如果我退后一步想想这个,我只想要键盘弹出,如果我想要输入一些东西。至于新对话框打开时键盘立即弹出...似乎是特例(可能有几次我想这样做)。

我不介意建立一个管理员或跟踪键盘状态的东西,但是我不知道我是否能够获得所需的信息,使其以高效直观的方式工作。

任何指针或想法都会受到高度赞赏......因为我最终会对此感到满意......我可以向你保证,我花了很多时间研究这个问题并尝试修复。

注意:对标题或敌意感到抱歉......我已经打了很长时间了,并且对键盘处理方式的奇怪处理感到愤怒。

2 个答案:

答案 0 :(得分:0)

  

所以我的问题是......有没有办法强迫app永远不会在新的对话框,片段等上自动弹出键盘... app wide?

但你可以使用:

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

关于每项活动。

答案 1 :(得分:0)

好的,我想我得到了你所要求的。看看第二个答案:

Stop EditText from gaining focus at Activity startup

您可以在AndroidManifest.xml中指定是否应隐藏软键盘,方法是将此android:windowSoftInputMode="stateHidden"添加到活动代码的开头(<activity>