我正在尝试使用以下代码获取Android键盘高度
parentLayout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
parentLayout.getWindowVisibleDisplayFrame(r);
int screenHeight = parentLayout.getRootView().getHeight();
int heightDifference = screenHeight - (r.bottom);
previousHeightDiffrence = heightDifference;
if (heightDifference > 100) {
isKeyBoardVisible = true;
changeKeyboardHeight(heightDifference);
} else {
if(emojiKeyboard.getVisibility()==View.INVISIBLE){
emojiKeyboard.setVisibility(View.GONE);
}
isKeyBoardVisible = false;
}
}
});
这段代码可以和android:windowSoftInputMode="adjustPan"
很好地配合使用,但当默认键盘出现时,我的活动屏幕会向上移动。
我需要做的就是获取键盘的高度,并在默认键盘下方显示自定义键盘。按照我的理解,这只有在android:windowSoftInputMode="adjustPan"
或android:windowSoftInputMode="AdjustNothing"
的情况下才可能实现。
如果设置为android:windowSoftInputMode="adjustNothing"
,那么我就无法获取键盘的高度。
我需要另一种解决方法来解决我的问题。
提前感谢!