【问题标题】:Why does Android soft keyboard appear when it does?为什么Android软键盘出现时会出现?
【发布时间】:2013-03-15 05:30:12
【问题描述】:

谁能解释一下为什么软键盘出现和消失的时候?

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

我认为键盘在那里是因为 EditText 具有焦点,所以我决定在页面底部提供一个按钮,而不是通过 . . .

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

... setContentView() 之后。这可以使按钮获得焦点。按钮获得了焦点,EditText 不再有焦点,但键盘仍然存在。最终我通过

摆脱了键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

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

【问题讨论】:

    标签: android android-softkeyboard


    【解决方案1】:

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

    查看this 答案以获取更多信息。如果您不希望键盘显示而不是关闭键盘,则应使用此解决方案。

    【讨论】:

    • 那么你是说即使我将焦点放在代码中的按钮上,它也会忽略这一点,因为焦点没有在 XML 中指定?
    • 不,我只是说在 XML 上指定它而不是让 Android 默认关注第一个 EditText 然后以编程方式更改它是更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多