#android #android-fragments #navigation
#Android #android-фрагменты #навигация
Вопрос:
Я использую библиотеку навигационных компонентов. При переходе к другому фрагменту, чтобы использовать анимацию, я понимаю, что могу добавить XML-код, подобный этому:
<fragment
android:id="@ id/specifyAmountFragment"
android:name="com.example.buybuddy.buybuddy.SpecifyAmountFragment"
android:label="fragment_specify_amount"
tools:layout="@layout/fragment_specify_amount">
<action
android:id="@ id/confirmationAction"
app:destination="@id/confirmationFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right" />
</fragment>
Но мне нужно использовать это программно.
Я был бы признателен за ваш ответ.
Ответ №1:
Я нашел ответ и просто хочу поделиться с вами.
Вы можете использовать NavOptions
таким образом:
val action = HomeFragmentDirections.actionHomeFragmentToFilesFragment2()
val navOptions = NavOptions
.Builder()
.setEnterAnim(R.anim.fragment_open_enter)
.setExitAnim(R.anim.fragment_close_exit)
.setPopEnterAnim(R.anim.fragment_open_enter)
.setPopExitAnim(R.anim.fragment_close_exit)
.build()
findNavController().navigate(action, navOptions)
Комментарии:
1. Обратите внимание, что, если у вас есть «всплывающее окно» в nav_graph, напишите новые параметры навигации. Builder(), подобный этому, будет игнорировать все, что у вас было в nav_graph