我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
我的应用程序底部有一个垂直滑动的抽屉。当软键盘打开时,它会把抽屉的标签往上推,所以它位于键盘上方。实际上,我想让它保持在屏幕的底部,当键盘显示时,它会被隐藏起来。
有人遇到过这个问题吗?知道怎么修吗?
当前回答
我为这个问题纠结了一段时间。一些解决方案是有效的,但我的一些观点仍在推进,而另一些则没有……所以这并没有完全解决我的问题。最后,所做的工作是将以下代码行添加到我的活动标记清单中…
android:windowSoftInputMode="stateHidden|adjustPan|adjustResize"
祝你好运
其他回答
要在片段中以编程方式完成此工作,您可以使用以下代码
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
将此放在onResume()中
只需要添加一行…
添加android:windowSoftInputMode="stateHidden|adjustPan"在必需的活动你的manifest文件。
我刚被解决了:):)
给以后的读者。
我想要对这个问题进行具体的控制,所以我这样做了:
从一个片段或活动中,隐藏你的其他视图(当键盘打开时不需要),然后恢复它们来解决这个问题:
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);
}
}
});
好吧,我已经看了这些答案,但在我的情况下,我陷入了同样的问题,并通过一个非常方便和最简单的解决方案,包括把一个非常小的无辜属性在你的Scrollview标签驻留在你的xml文件避难。这是
android:isScrollContainer="false"
好运!
当你想隐藏视图时,打开键盘。
将此添加到您的活动清单文件
android:windowSoftInputMode="stateHidden|adjustPan"