Изменение стиля панели приложения после перехода между экранами - PullRequest
0 голосов
/ 04 октября 2019

У меня есть 2 действия, и я хочу показать переход на панели приложения, когда пользователь меняет действия.

Я использовал sharedElement и transitionName, чтобы обеспечить этот переход. Переход работает хорошо, но когда я возвращаюсь к начальной активности, панель приложения изменилась ... Смотрите FAB. С темной темой, цвет фона панели приложения меняется.

Почему? Я думаю, что не хватает чего-то, чтобы вернуться к первоначальному стилю, но что?

Панель приложения первого действия ДО перехода App bar of first activity before transition

Панель приложения первой активности ПОСЛЕ перехода App bar of first activity after transition

Панель приложения второй активности App bar of second activity

Код для начала второго действия:

val options = ActivityOptionsCompat.makeSceneTransitionAnimation(
     this,
     Pair.create<View, String>(appBar, getString(R.string.transitionName_appBar)),
     Pair.create<View, String>(appBar_fab, getString(R.string.transitionName_appBarFab))
)
startActivity(intentFor<AddExpenseActivity>(), options.toBundle())

Панель приложения первого действия:

<com.google.android.material.bottomappbar.BottomAppBar
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:transitionName="@string/transitionName_appBar"
        app:layout_dodgeInsetEdges="bottom"
        app:hideOnScroll="true"
        app:navigationIcon="@drawable/ic_menu"
        app:layout_scrollFlags="scroll|enterAlways" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/appBar_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        android:transitionName="@string/transitionName_appBarFab"
        app:tint="@null"
        app:layout_anchor="@id/appBar" />

Панель приложения второго действия:

 <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/addExpense_appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:transitionName="@string/transitionName_appBar">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/addExpense_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|enterAlways"
            app:title="Add Expense"/>

    </com.google.android.material.appbar.AppBarLayout>

Наконец-то мойтема для перехода

<item name="windowNoTitle">true</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowEnterTransition">@android:transition/fade</item>
<item name="android:windowExitTransition">@android:transition/fade</item>
<item name="android:windowReturnTransition">@android:transition/fade</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
<item name="android:windowSharedElementReturnTransition">@android:transition/move</item>

Есть идеи?

Спасибо

...