我在应用程序底部有一个垂直滑动抽屉。当软键盘打开时,它会将抽屉的选项卡向上推,使其位于键盘顶部。实际上,我希望它保持在屏幕底部,并在显示键盘时隐藏。
还有其他人遇到这个问题吗?知道如何解决吗?
对于滚动视图:
如果在Android Manifest中添加了android:windowSoftInputMode="stateHidden|adjustPan"
,但仍然无法正常工作。
可能是因为当键盘出现时,它会进入一个滚动视图,如果您的按钮/任何对象不在滚动视图中,则这些对象将跟随键盘并移动其位置。
检查您的xml,确保您的按钮位于滚动视图括号下方而不是括号外。
希望这能有所帮助。:D
这些都对我没用,试试这个
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) {
}
}
});
}
我曾经遇到这个问题很长时间,一些解决方案奏效了,但是一些视图仍然被推上去,而其他的则没有……所以它并没有完全解决我的问题。最终,解决问题的方法是在活动标签中添加以下代码行...
android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"
祝你好运
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
在您想要显示的活动下,将其包含在清单文件中。但请确保不要使用全屏活动。
android:windowSoftInputMode="adjustPan"
android:windowSoftInputMode="adjustPan"
这段代码可能会对你有所帮助。在你的oncreate
方法中使用它。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
解决这个问题有两种方法。一种是进入AndroidManifest.xml,在你的活动名称中添加以下行:
android:windowSoftInputMode="adjustPan"
如下代码所示,我已经添加到注册活动中。
<activity android:name=".Register"
android:windowSoftInputMode="adjustPan">
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
android:windowSoftInputMode="adjustResize"