我在我的应用中使用了下面给出的代码来检测键盘是否可见。我可以将它用于除了棒棒糖之外的Android版本。在棒棒糖设备上运行应用程序时,以下代码无效。如果任何人在错误的情况下纠正代码或提供任何替代解决方案,那将是非常有帮助的。
final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) {
//keyboard is visible
}
}
});