【问题标题】:Soft Keyboard Overlapping with EditText Field与 EditText 字段重叠的软键盘
【发布时间】:2010-12-30 01:37:24
【问题描述】:

我发现 this 旧帖子肯定有助于解决我的问题,但我注意到它似乎并不能真正解决我的问题。我收集到我需要为我的活动设置 android:windowSoftInputMode="adjustPan" 。但问题是它根本无法平移。

文本字段位于视图的底部,当键盘出现时,视图会稍微移动,但只会移动到 EditText 的最顶部。文本字段已打开自动完成功能,当它开始显示自动完成选项时,视图会稍微向下平移,但实际上最终会被自动完成选项进一步遮挡。它使文本输入字段很难使用,因为您看不到正在输入的任何内容。

这是一个多行输入字段,当文本滚动到下一行时,视图会平移更远,因此您实际上可以看到上一行文本。但是你看不到你在输入什么,我认为这很重要。

有人对解决这个问题有什么想法吗?

【问题讨论】:

  • 所以我最好的办法就是让它上面的字段“不可见”或“消失”,但这绝对不是一个理想的解决方案。感谢 Phobos 的帮助,但不幸的是,该解决方案所做的只是缩小我试图保持专注的领域,这不是我想要做的。

标签: android view android-edittext


【解决方案1】:

所以,我找到了问题的原因。在我设置的 AndroidManifest.xml 中

<uses-sdk android:minSdkVersion="3" />

显然,使用低于“4”的 minSdkVersion 是问题的根源。将其更改为“4”后,布局显示为应有的样子,并且 EditText 的第一行适当地位于软键盘顶部上方。

感谢您的帮助,火卫一。

【讨论】:

  • 哇,感谢您的提示!如果没有它,我永远不会找到它。
  • 完美解决方案,正是我遇到的问题
  • 我也有同样的问题。我的布局有 7 个编辑文本,屏幕顶部有一个按钮,屏幕底部有另一个按钮。我在 AndroidManifest 文件中的 Activity 中使用了 和 android:windowSoftInputMode="adjustPan" 但是当软键盘打开并且我尝试转到底部按钮时它不允许我看。我的总体布局是使用相对布局完成的。如果我通过单击第二个编辑文本(想在第二个设置值然后想单击底部按钮)打开软键盘板,我应该怎么做才能看到底部按钮。
  • 我认为使用“adjustPan”时看不到底部按钮。来自 android 开发人员关于“adjustPan”:“这通常不如调整大小,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。”链接 [developer.android.com/guide/topics/manifest/…
【解决方案2】:

将您的 UI 包装在 ScrollView 容器中。这将允许用户查看整个 UI,尽管如果需要,可以通过滚动来查看。 UI 可能不够大,无法在屏幕上没有键盘的情况下滚动,但当键盘显示时,它会有效地减小屏幕尺寸。

【讨论】:

  • 我可能有误解,但我的整个layout.xml 文件是一个RelativeLayout。如果您建议我将 RelativeLayout 包装在 ScrollView 中(即 ?),我尝试这样做但没有成功。它最终看起来完全相同。它可能是我正在使用的参数,或者类似的东西,但它看起来与它所做的方式相同。如果我没有使用 match_parent 作为高度/宽度,并且 fillViewPort="true",它会导致崩溃或导致布局显示不正确。我有什么遗漏吗?
  • 在 ScrollView 中包装布局后禁用 adjustPan。每当我的主 UI 中有 EditTexts 时,我都会使用这种方法。当我创建某种表单 UI 时,我发现 TableLayout 最适合我。我不知道你的布局是什么,但看看它。如果RelativeLayout 不起作用,看看你是否可以用TableLayout 来做。
  • 不幸的是,有问题的 EditText 字段没有设置为特定的高度,所以这似乎不起作用。高度设置为“match_parent”(填充布局的“剩余空间”),其大小基于上方视图和下方视图的相对大小。所以如果我使用 adjustResize 而不是 adjustPan 会发生什么,该字段会缩小并几乎消失,而不是正确地滚动到可视区域中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 2021-08-05
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多