我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。

有人遇到过这个问题吗?知道怎么修吗?


当前回答

你可以简单地切换你的活动的windowSoftInputModeflag为adjustPan在你的androidmainfst .xml文件在你的活动标签。

查看官方文档了解更多信息。

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

如果你的容器没有改变大小,那么你可能已经将高度设置为“match parent”。如果可能的话,将父元素设置为“Wrap Content”,或者在父元素的顶部和底部设置约束布局。

父容器会缩小以适应可用空间,所以很可能你的内容应该在一个训斥视图内,以防止(取决于手机制造商和选择的布局…)

内容被粉碎在一起 内容悬挂在屏幕上 内容无法访问,因为它在键盘下面

即使它所在的布局是相对布局或约束布局,内容也会出现问题1-3。

其他回答

我为这个问题纠结了一段时间。一些解决方案是有效的,但我的一些观点仍在推进,而另一些则没有……所以这并没有完全解决我的问题。最后,所做的工作是将以下代码行添加到我的活动标记清单中…

android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"

祝你好运

您可以尝试动态添加此属性,通过将以下代码放在您的活动的onCreate方法中:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

这对我来说很管用,但那就是:

android:windowSoftInputMode="adjustPan"

没有。

滚动视图:

如果在你的android Manifest中添加了android:windowSoftInputMode="stateHidden|adjustPan",仍然不起作用。

它可能会受到影响,因为当键盘出现时,它将进入滚动视图,如果你的按钮/任何对象不在滚动视图中,那么对象将跟随键盘并移动其位置。

检查你的xml按钮在哪里,并确保它在滚动视图括号下,而不是在它外面。

希望这能帮到你。: D

在你的清单文件中包含你想要显示的activity。但是要确保不要使用全屏activity

android:windowSoftInputMode="adjustPan"

这个方法对我很管用

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);