У меня есть макет, который переходит между двумя сценами.Поддержание оконных вставок «fitsSystemWindows» через сценический переход
layout.xml
<FrameLayout
android:id="@+id/framelayout_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
// Some background views.
<FrameLayout
android:id="@+id/scene_root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/scene_a" />
</FrameLayout>
</FrameLayout>
разреш/макеты/scene_a.xml
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
// Child views removed for brevity
</android.support.constraint.ConstraintLayout>
макет сцены B идентичен.
В деятельности ViewCompat.setOnApplyWindowInsetsListener(frameLayout, (v, insets) -> insets);
призван использовать fitsSystemWindows
с FrameLayout.
Представления верны при инфляции начального вида. Представления отображаются в строке состояния, но содержимое нажимается на вставки окна, чтобы избежать появления строки состояния.
Однако, когда я перехожу на сцену B, эта прокладка, предоставляемая fitsSystemWindows, теряется, и содержимое вскакивает. Сцена А также теряет прокладку, когда возвращается.
Любая помощь, которую очень ценят, как сохранить эту прокладку через переходы.