安卓中如何在软键盘弹出时调整布局?

4
我有一个位于布局底部的EditText,如下图所示。 enter image description here 当软键盘出现在屏幕上时,我需要确切地有50dp间隙与EditText。最终输出结果将如下图所示。 enter image description here 我该如何实现这一点?在清单文件中使用AdjustPan或AdjustResize不能给我提供特定的间隙。

我遇到了类似的问题,只能使用adjustPan来解决 :) - Nargis
adjustPan只是将EditText字段上移以避开软键盘,但我希望它可以上移特定的dp,例如10dp,而不仅仅是在软键盘上方。 - androidcodehunter
1个回答

1
AdjustResize动态计算每个视图的大小,以便在软键盘可见时尽可能地将它们适应屏幕。其整个目的就是开发人员不必担心视图的调整和它们之间的相对距离。系统会自动为您调整视图大小,以便用户可以看到尽可能多的视图。
因此,除非您愿意查看Android源代码并找出覆盖默认行为的方法(也许有一种子类化输入方法类的方法),否则您所要求的是不可能的。

在iOS上是可能的,但在Android上呢?你确定它不可能吗? - androidcodehunter
首先,不要比较iOS和Android。iOS使用固定大小的设备。所有代码都是针对特定硬件编写的。它的哲学与Android根本不同,后者旨在运行几乎任何您可以想到的设备。动态大小、自由流动的布局等在Android中非常重要。如果您想与框架作斗争,可能会想出一些黑客方法来实现这一点,但我不建议这样做。如果您想知道SDK是否提供了公共API来执行此操作,则答案是否定的。 - Anup Cowkur
@ Anup Cowkur,你说得对。我尝试按照这个解决方案来做,链接是https://dev59.com/WHI95IYBdhLWcg3wyRM0 ,但它并没有完全符合我的要求。实际上,我的客户需要这个功能,那么现在我应该怎么办呢?有没有可能找到解决这个问题的方法? - androidcodehunter
你可以尝试向客户解释这是平台限制,而Android与iOS不同。或者你可以像我之前说的那样尝试黑客攻击系统。但我对如何做没有任何想法。 - Anup Cowkur
感谢Anup提供的清晰解释。 - androidcodehunter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接