android:windowSoftInputMode =“stateAlwaysHidden | adjustPan”并不适用于所有设备

时间:2013-09-26 00:05:42

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

正如许多人所做的那样,我遇到了软输入覆盖我的发送按钮的问题所以我做了一些搜索,发现修复此问题的可接受方法是"android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

这在我的设备上运行得很好,但是当我在我的女朋友手机上试用它时它不起作用。在输入显示在屏幕上之前,我看到对话框稍微抬起,但不是很多,发送按钮仍然被覆盖。为什么这会在某些设备上运行,但不是全部?

2 个答案:

答案 0 :(得分:1)

与屏幕键盘混淆是最困难的,因为一方面:

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

BUT

它可能妨碍你。

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

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

*活动开始时不会弹出(尽管第一个输入具有焦点< - good),但会在用户点击时弹出。

当用户完成时关闭键盘是好的,就是让“输入按钮”将它们带到下一个条目,如果没有,则隐藏它,如果它是某种类型的数据捕获形式,则验证为如果不是这样做,因为他们可能会按下以试图让它起来。

附录I

“adjustResize”

活动的主窗口始终调整大小,以便为屏幕上的软键盘腾出空间。

“adjustPan”

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

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

Difference between adjustResize and adjustPan in android?

请查看更多内容。

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

这有帮助吗?

答案 1 :(得分:0)

突然来到这里。您不应该在android:windowSoftInputMode=""属性中混用几个值。因此,您可以保留android:windowSoftInputMode="adjustPan"并用hideKeyboard()隐藏键盘(在网络中查找此方法)。可能您可以添加侦听器以将其隐藏在活动中的任何地方。