5

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

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

4

2 回答 2

1

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

它应该在它所在的地方,用户期望的那样,它是一致的,在 UI 设计中非常重要

它可能会妨碍您。

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

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

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

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

附录一

“调整大小”

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

“调整盘”

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

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

android中adjustResize和adjustPan的区别?

更多信息请参见那里。

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

这有帮助吗?

于 2013-09-26T00:11:31.513 回答
0

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

于 2018-09-24T11:03:48.147 回答