我已经看到很多关于软键盘显示/隐藏监听器解决方案的问题。
我认为这个解决方案很棒。但实际上它不起作用。太糟糕了。 Listen for keyboard show or hide event in android
最后,我使用了这个解决方案。但我认为这个解决方案只是一个临时解决方案。我们不知道200dp正确代表软键盘。 How to check visibility of software keyboard in Android?
我希望EditText和Textview下面的EditText都在软键盘的顶部,当显示软键盘时。 我希望EditText和TextView(父布局是LinearLayout)并不总是对齐父底部 所以...... 机器人:windowSoftInputMode =" adjustresize"是不合适的。
我认为adjustPan很棒但是当EditText处于焦点时它只让EditText在顶部。我希望它们都在顶部.T_T帮助我!非常感谢。
答案 0 :(得分:6)
要知道键盘是隐藏还是可见,我使用以下代码:
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
view.getWindowVisibleDisplayFrame(r);
if (view.getRootView().getHeight() - (r.bottom - r.top) > 500) { // if more than 100 pixels, its probably a keyboard...
onKeyboardShow();
} else {
onKeyboardHidden();
}
}
});
onKeyboardShow& onKeyboardHidden函数是我自己的函数,然后执行所需的操作。