Анимированные переходы между фрагментами из DrawerMenu - PullRequest
0 голосов
/ 09 марта 2020

У меня проблемы с поиском решения. С текущей парадигмой навигации, использующей Jetpack, большинство предложений, которые я нашел, не сработало. Большинство решений должны предоставить место для их переходов. С NavigationDrawer будет несколько вариантов для пунктов назначения. Решение, которое я нашел, избавило меня от навигационной парадигмы Jetpack.

Я смотрел на кодовые метки:

https://codelabs.developers.google.com/codelabs/android-navigation/#5

Попытка создания элемента навигации Выбранный прослушиватель, но никогда не вызывается:

Android Компонент навигации с переходом от Layerlayout

NavigationView navigationView = findViewById(R.id.nav_view);

        navigationView.setNavigationItemSelectedListener(menuItem -> {
            @IdRes
            int id = menuItem.getItemId();
            NavOptions.Builder optionsBuilder = new NavOptions.Builder();
            optionsBuilder
                    .setEnterAnim(R.anim.slide_in_right)
                    .setExitAnim(R.anim.slide_out_left)
                    .setPopEnterAnim(R.anim.slide_in_left)
                    .setPopExitAnim(R.anim.slide_out_right);

            NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
            navController.navigate(id, null, optionsBuilder.build());

Попытка добавления тега действия в тег фрагмента в xml:

https://developer.android.com/guide/navigation/navigation-animate-transitions

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

Но, как видите, для этого решения требуется пункт назначения. Мой NavigationDrawer содержит около 10 фрагментов, которые могут быть пунктами назначения.

Не удается найти решение, которое работает.

...