我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
当前回答
滚动视图:
如果在你的android Manifest中添加了android:windowSoftInputMode="stateHidden|adjustPan",仍然不起作用。
它可能会受到影响,因为当键盘出现时,它将进入滚动视图,如果你的按钮/任何对象不在滚动视图中,那么对象将跟随键盘并移动其位置。
检查你的xml按钮在哪里,并确保它在滚动视图括号下,而不是在它外面。
希望这能帮到你。: D
其他回答
这些答案对我没有帮助。所以我试着这样做:
android:windowSoftInputMode="adjustResize"
这就像一个魅力,现在我的应用程序的头没有消失。它的平滑。
没有一个对我有用,试试这个
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) {
}
}
});
}
给以后的读者。
我想要对这个问题进行具体的控制,所以我这样做了:
从一个片段或活动中,隐藏你的其他视图(当键盘打开时不需要),然后恢复它们来解决这个问题:
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);
int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
//ok now we know the keyboard is up...
view_one.setVisibility(View.GONE);
view_two.setVisibility(View.GONE);
}else{
//ok now we know the keyboard is down...
view_one.setVisibility(View.VISIBLE);
view_two.setVisibility(View.VISIBLE);
}
}
});
@manifest在你的活动中:
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
滚动视图:
如果在你的android Manifest中添加了android:windowSoftInputMode="stateHidden|adjustPan",仍然不起作用。
它可能会受到影响,因为当键盘出现时,它将进入滚动视图,如果你的按钮/任何对象不在滚动视图中,那么对象将跟随键盘并移动其位置。
检查你的xml按钮在哪里,并确保它在滚动视图括号下,而不是在它外面。
希望这能帮到你。: D