アプリで以下のコードを使用して、キーボードが表示されているかどうかを検出しました。lollipop 以外の Android バージョンでも使用できます。lollipop デバイスでアプリを実行すると、以下のコードが機能しません。コードが間違っている場合は誰かがコードを修正したり、代替ソリューションを提供したりできると、非常に役立ちます。
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
}
}
});