Я использую следующий код / флаги, чтобы скрыть нижнюю панель навигации, но проблема в том, что мои представления активности не перерисовывают / обновляют / изменяют макет самостоятельно, чтобы отразить это изменение.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(uiOptions);
}
RootRelativeLayout.requestLayout();
Код моей активности
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_relativelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:clipToPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
</RelativeLayout>
</RelativeLayout>
Внутренний RelativeLayout остается на своем месте, как будто панель навигации все еще существует, и не опускается в нижнюю часть экрана, даже если я вызвал requestLayout () для его родительского RelativeLayout.
Как вы видите на картинке, внизу есть пробоина ![enter image description here](https://i.stack.imgur.com/t1hlj.png)
Я нашел решение этой проблемы, но это также вызывает другую проблему.
Решение, к которому я пришел, состоит в том, чтобы установить для android: fitsSystemWindows значение false, а не true.
Но это приводит к проблеме, заключающейся в том, что представления с выравниванием вершин в моей деятельности идут за строкой состояния, единственное решениена мой взгляд, это установить верхний отступ на высоту строки состояния.