I need to do a very simple thing - find out if the software keyboard is shown. Is this possible in Android?
I used a slight variant of Reuban's answer, which proved to be more helpful in certain circumstances, especially with high resolution devices.
final View activityRootView = findViewById(android.R.id.content);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightView = activityRootView.getHeight();
int widthView = activityRootView.getWidth();
if (1.0 * widthView / heightView > 3) {
//Make changes for Keyboard not visible
} else {
//Make changes for keyboard visible
}
}
});