При выполнении транзакций фрагментов, которые являются частью системы androidx.navigation, мы можем программно указывать NavOptions следующим образом:
val navOptions = NavOptions.Builder()
.setEnterAnim(R.anim.slide_in_right)
.build()
findNavController(R.id.nav_host_fragment).navigate(R.id.settingsFragment, null, navOptions)
Мы также можем указывать их в навигации. xml следующим образом:
<fragment
android:id="@+id/settingsFragment"
android:name="com.test.android.fragments.SettingsFragment"
android:label="SettingsFragment">
<action
android:id="@+id/action_settings_to_profile"
app:destination="@id/userProfileSettingsFragment"
app:enterAnim="@anim/slide_in_right" />
</fragment>
Но как мы можем анимировать метод navigateUp ()? Он не принимает NavOptions. Я скользю справа от своего фрагмента, но когда пользователь нажимает кнопку Назад, анимация не происходит. Я хочу сделать анимацию слайда вправо (противоположную той, которую они увидели, добравшись туда).
Как анимировать: navigateUp ()? Он вызывает popBackStackInternal внутри, что является сложной операцией. Я не вижу логики c, имеющей отношение к анимации.
Какие-нибудь альтернативные решения для возврата туда, откуда вы пришли с анимацией, кроме navigateUp ()?