I am facing a problem with android 5.0 and above. Whenever I align any view to parent bottom, Content is getting hidden behind the soft navigation button.
A
I don't have a off-the-shelve solution, but this might be of help. The activity_main.xml
root element states it should fit the system window: android:fitsSystemWindows="true"
.
I guess you'll have to find a way to detect whether the bottom navbar is on screen, and if true, add extra margin-bottom to your activity layout.
Here is the solution.
Most of the layouts get solved by adding these properties in value-21 style.xml
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:fitsSystemWindows">true</item>
for others, I have calculated the hight of navigation bar and add margin to my view .
public static int getSoftButtonsBarSizePort(Activity activity) {
// getRealMetrics is only available with API 17 and +
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
android:fitsSystemWindows="true"
This worked for me. The view no longer overlaps with soft navigation.