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

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


当前回答

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

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

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

android:windowSoftInputMode="adjustPan"

没有。

其他回答

当你想隐藏视图时,打开键盘。

将此添加到您的活动清单文件

android:windowSoftInputMode="stateHidden|adjustPan"

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

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

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

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

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

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

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

这些答案对我没有帮助。所以我试着这样做:

android:windowSoftInputMode="adjustResize"

这就像一个魅力,现在我的应用程序的头没有消失。它的平滑。

这个方法对我很管用

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

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

android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"

祝你好运