#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"