Android Conductor - подходит система Windows не работает на первом контроллере - PullRequest
2 голосов
/ 07 марта 2019

В моем последнем приложении я решил использовать Conductor для всей навигации.Это приложение с одним действием, и все работает отлично, за исключением заставки - по какой-то причине первоначальный контроллер отказывается растягиваться под строкой состояния, даже несмотря на то, что основной макет и хост контроллера оба - CoordinatorLayouts с соответствующими fitsSystemWindows флагами.

Активность хоста:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable
            name="viewModel"
            type="net.fonix232.app.viewmodel.MainViewModel" />
    </data>

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/windowBackground"
        android:fitsSystemWindows="true">

        <net.fonix232.app.common.ChangeHandlerCoordinatorLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true" />

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

</layout>

Макет контроллера всплеска:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="viewModel"
            type="net.fonix232.app.viewmodel.SplashViewModel" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/windowBackground"
        android:fitsSystemWindows="true">

        [... splash content ...]

    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>

Экран после заставки:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="viewModel"
            type="net.fonix232.app.viewmodel.SplashLandingViewModel" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="?android:attr/windowBackground"
        android:fitsSystemWindows="true">

        [... splash landing content ...]

    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

ПервыйКомпоновка заставки не растягивает содержимое (пользовательскую настройку слоя изображения) под строкой состояния, однако на втором экране заставки оно правильно растягивается - и так как я использую переход общего элемента, я получаю хороший эффект изменения размера изображения натакже фон.

Где это идет не так?

...