【问题标题】:android:windowSoftInputMode="stateAlwaysHidden|adjustPan" doesnt work on all devicesandroid:windowSoftInputMode="stateAlwaysHidden|adjustPan" 不适用于所有设备
【发布时间】:2013-09-26 00:05:42
【问题描述】:

和很多人一样,我遇到了软输入覆盖我的发送按钮的问题,所以我做了一些搜索,发现解决这个问题的公认方法是"android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

这在我的设备上效果很好,但是当我在我女朋友的手机上尝试时它不起作用。在输入显示在屏幕上之前,我看到对话框稍微提升了一点,但并不多,并且发送按钮仍然被覆盖。为什么这适用于某些设备,但不是全部?

【问题讨论】:

  • 改用adjustResize。

标签: android resize window-soft-input-mode


【解决方案1】:

使用屏幕键盘充其量是困难的,因为一方面:

它应该在用户期望的位置,它是一致的,在 UI 设计中非常重要

但是

它可能会碍事。

解决方案(基于Android设计指南、经验和反馈等)不要太在意它,你基本上可以有以下几种行为:

*在活动开始时弹出(如果活动有输入,则会发生这种情况)

*在活动开始时不会弹出(尽管第一个输入具有焦点

最好在用户完成后关闭键盘,即让“输入按钮”将他们带到下一个条目,如果没有剩下的,隐藏它,如果它是某种数据捕获表单,可以验证它们继续,如果不这样做,就不要这样做,因为他们可能会反击以试图让它起来。

附录一

“调整大小”

Activity 的主窗口总是会调整大小,以便为屏幕上的软键盘腾出空间。

“调整盘”

Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。

来自此处的文档:http://developer.android.com/guide/topics/manifest/activity-element.html

Difference between adjustResize and adjustPan in android?

查看更多信息。

很难正确平移,因为activity的布局可以是很多东西,可以向左滚动,也可以都是相对的,不是一条条只需要上下跳动,有些东西还有更多不止一种解决方案,不止一种平移方式,因此它是可见的。您还没有真正描述什么不起作用。我试图解释我认为你想要什么的问题。

这有帮助吗?

【讨论】:

  • 不,非常随机。问题是......为什么 android:windowSoftInputMode=“stateAlwaysHidden|adjustPan” 可以在大多数设备上工作,但不是全部?
【解决方案2】:

突然来到这里。您不应该在 android:windowSoftInputMode="" 属性中混合多个值。所以,你可以保留android:windowSoftInputMode="adjustPan",用hideKeyboard()隐藏一个键盘(在网上找这个方法)。也许您可以添加侦听器以将其隐藏在活动中的任何位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多