Dimension of soft buttons bar

This method is very useful in order to set the layout padding in Android KitKat (4.4). Using this, you can avoid the soft buttons bar overlapping over your layout.

The getRealMetrics method is only available with API 17 and +, but I’m only using the following method I wrote for devices on API 19+

@SuppressLint("NewApi")
private int getSoftbuttonsbarHeight() {
    // getRealMetrics is only available with API 17 and +
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
        return 0;
    }

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int usableHeight = metrics.heightPixels;
    getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
    int realHeight = metrics.heightPixels;

    return realHeight > usableHeight ? realHeight - usableHeight : 0;
}

Tested upon Nexus 5 & Nexus 7 2013.

Leave a Comment