我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
当前回答
这段代码可能会对您有所帮助。在oncreate方法中使用它。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
其他回答
给以后的读者。
我想要对这个问题进行具体的控制,所以我这样做了:
从一个片段或活动中,隐藏你的其他视图(当键盘打开时不需要),然后恢复它们来解决这个问题:
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);
}
}
});
android:windowSoftInputMode="stateHidden|adjustNothing"
这段代码可以工作。
只需要添加一行…
添加android:windowSoftInputMode="stateHidden|adjustPan"在必需的活动你的manifest文件。
我刚被解决了:):)
解决这个问题有两种方法。 转到androidmanifest .xml,在你的活动名称中,添加这一行
android:windowSoftInputMode="adjustPan"
在下面的代码中,我已经添加到注册活动。
<activity android:name=".Register"
android:windowSoftInputMode="adjustPan">
在第二种方法中,转到您的活动,并在您的onCreate方法中添加此代码。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
这对我来说是最好的方法
android:windowSoftInputMode="adjustNothing"
试一试!