我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
当前回答
没有一个对我有用,试试这个
private void scrollingWhileKeyboard() {
drawerlayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
try {
drawerlayout.getWindowVisibleDisplayFrame(r);
int screenHeight = drawerlayout.getRootView().getHeight();
int keypadHeight = screenHeight - r.bottom;
if (keypadHeight > screenHeight * 0.15) {
tabLayout.setVisibility(View.GONE);
} else {
tabLayout.setVisibility(View.VISIBLE);
}
} catch (NullPointerException e) {
}
}
});
}
其他回答
您可以尝试动态添加此属性,通过将以下代码放在您的活动的onCreate方法中:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
这对我来说很管用,但那就是:
android:windowSoftInputMode="adjustPan"
没有。
我为这个问题纠结了一段时间。一些解决方案是有效的,但我的一些观点仍在推进,而另一些则没有……所以这并没有完全解决我的问题。最后,所做的工作是将以下代码行添加到我的活动标记清单中…
android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"
祝你好运
这段代码可能会对您有所帮助。在oncreate方法中使用它。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
在我的情况下,我需要键盘保持隐藏,就在点击按钮后,我的布局需要调整,所以我只是在清单中添加了这个命令,它得到了超级正确。
android:windowSoftInputMode="stateHidden|adjustResize"
解决这个问题有两种方法。 转到androidmanifest .xml,在你的活动名称中,添加这一行
android:windowSoftInputMode="adjustPan"
在下面的代码中,我已经添加到注册活动。
<activity android:name=".Register"
android:windowSoftInputMode="adjustPan">
在第二种方法中,转到您的活动,并在您的onCreate方法中添加此代码。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);