Android Naviagtion Проблема навигации всплывающей анимации

#android #android-architecture-navigation

Вопрос:

Я искал везде, но не смог найти решения, вот проблема: [![введите описание изображения здесь][1]][1]

график навигации/действие

  <fragment
    android:id="@ id/einstellungenFragment"
    android:name="com.medbreaker.medat2go.EinstellungenFragment"
    android:label="fragment_einstellungen"
    tools:layout="@layout/fragment_einstellungen" >
    <action
        android:id="@ id/action_einstellungenFragment_to_aboutFragment"
        app:destination="@id/aboutFragment"
        app:enterAnim="@anim/slide_in_right"
        app:exitAnim="@anim/slidefadeout_left"
        app:popEnterAnim="@anim/slide_in_left"
        app:popExitAnim="@anim/slidefadeout_right"
        app:popUpTo="@ id/einstellungenFragment" />
</fragment>
 

все находится в режиме просмотра фрагментов и в режиме обратного нажатия, которое я просто делаю navController.navigateUp() (оно не выполняется для обратного нажатия, это то же самое, если оно запускается кнопкой)

Основная деятельность

 val navHostFragment = supportFragmentManager.findFragmentById(R.id.main_navigation_host) as NavHostFragment
    navController = navHostFragment.navController
    NavigationUI.setupWithNavController(nav_view,navController)
 

таковы зависимости

 def nav_version = "2.3.5"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
 

странно то, что в какой-то момент это сработало (выпущено в play store), вот как это должно выглядеть
(на самом деле я ничего не менял, за исключением, может быть, обновления зависимостей)
[![введите описание изображения здесь][2]][2]

У вас есть какие-либо идеи о том, что может вызвать эту проблему?

Комментарии:

1. Какую версию фрагментов вы используете?

2. Я использую navigation-fragment-ktx в качестве зависимости с версией 2.3.5

3. Нет, я спрашиваю о том, какую версию фрагментов вы используете (например, зависимость от androidx.fragment или библиотеки, которые извлекают такие фрагменты, как androidx.appcompat ).

4. о, извините, androidx.appcompat:appcompat:1.3.0-rc01

5. я вернулся к стабильному выпуску 1.2.0, это исправило проблему, спасибо! должно быть, я почти три часа искал в гугле фейспалм

Ответ №1:

Согласно примечаниям к выпуску AppCompat 1.3.0-rc01 , AppCompat теперь зависит от фрагмента 1.3.2.

Анимацией между Фрагментами управляют Фрагменты, а не Навигация. Фрагмент 1.3.2 подвержен этой проблеме, когда какие-либо всплывающие анимации не запускаются, особенно в случаях использования, которые использует навигация.

Эта проблема уже исправлена для предстоящего выпуска фрагмента 1.3.3, но при использовании фрагмента 1.3.2 нет обходного пути. Вы можете вернуться к AppCompat 1.3.0-beta01 и вручную включить зависимость от фрагмента 1.3.1 (а не 1.3.2), что позволит избежать этой проблемы:

 // Don't use AppCompat 1.3.0-rc01 since it depends on the broken Fragment 1.3.2
def appcompat_version = "1.3.0-beta01"
implementation "androidx.appcompat:appcompat:$appcompat_version"

// Instead add an explicit dependency on Fragment 1.3.1, which is not affected
def fragment_version = "1.3.1"
implementation "androidx.fragment:fragment-ktx:$fragment_version"