尝试不显示当我单击表单的 EditText 之一时显示的按钮

Posted

技术标签:

【中文标题】尝试不显示当我单击表单的 EditText 之一时显示的按钮【英文标题】:Trying not to show the buttons showing when I click in one of the EditText of the form 【发布时间】:2021-06-01 14:47:01 【问题描述】:

我正在使用 android Studio 开发一个 Android 应用。我有一个表单,底部有几个字段和 2 个按钮,用于验证或返回。问题是,只要我单击表单的其中一个 EditText,2 个按钮就会跟随键盘。

如何防止这 2 个按钮出现并强制它们停留在页面底部,隐藏在键盘后面。表单位于 ScrollView 中,后者位于 ConstraintLayout 中。我尝试了很多事情,比如在 ConstraintLayout 中设置我的 2 个按钮。同样在父级底部带有约束的RelativeLayout 之外...我还尝试使用LinearLayout 而不是ConstraintLayout 并对每个组件进行加权,但按钮仍然存在。我发现的唯一方法是使用垂直 LinearLayout 而不加权组件。但是如果屏幕太小,我会遇到看不到按钮的问题。我希望按钮留在底部。

正常吗?我是否必须通过在专注于其中一个 TextEdit 或布局时隐藏按钮来从代码中修复它?

另一件事是,如果我点击最后一个字段(“Ville”),表单不会移动,我仍然看到前 2 行...

非常感谢您的帮助

【问题讨论】:

【参考方案1】:

在您的manifest.xml 上,您可以将android:windowSoftInputMode 设置为adjustPan

<activity
 android:name=".MainActivity"
 android:windowSoftInputMode="adjustPan" />

来自 Android 文档:

不要调整窗口大小来为软输入区域腾出空间;反而 当焦点在其中移动时平移窗口的内容,以便 用户可以看到他们正在输入的内容。这通常是不太可取的 而不是平移,因为用户可能需要关闭输入区域才能获得 在窗口的某些部分并与之交互

【讨论】:

非常感谢。正是我需要的。它解决了我遇到的两个问题。 不要忘记检查答案是否已接受以帮助他人。 我当然会,但显然我必须等待 5 分钟 :)

以上是关于尝试不显示当我单击表单的 EditText 之一时显示的按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 EditText 中的按钮逐个添加数字?

单击或触摸另一个视图时清除EditText焦点并隐藏键盘

EditText 请求焦点不起作用

在 IE11 中,当单击其子元素之一时,焦点事件未在具有显示 flex 的可聚焦父 HTML 元素上触发

Android Eclipse editText 在本地实例上的 setText 后不显示

Angular Material 2 Form 不显示