Как я могу настроить анимации setupActionBarWithNavController? - PullRequest
0 голосов
/ 28 марта 2019

Я могу легко настроить действия навигации Android, как этот код, но я не могу настроить действия, поступающие из ящика или нижней навигации и меню.

ЕстьЕсть ли способ настроить эти действия?Действия, исходящие из этой конфигурации setupActionBarWithNavController ?

        <action
            android:id="@+id/action_flow_step_two_dest_to_notificationsFragment"
            app:destination="@id/notificationsFragment"
            app:enterAnim="@anim/navigation_slide_in_right"
            app:exitAnim="@anim/navigation_slide_out_left"
            app:popEnterAnim="@anim/navigation_slide_in_left"
            app:popExitAnim="@anim/navigation_slide_out_right" />

1 Ответ

0 голосов
/ 29 марта 2019

Глядя на исходный код, я замечаю, что библиотека навигации заменяет каждую переданную анимацию на анимацию по умолчанию, когда происходит навигация по меню.

public static boolean onNavDestinationSelected(@NonNull MenuItem item,
        @NonNull NavController navController) {
    NavOptions.Builder builder = new NavOptions.Builder()
            .setLaunchSingleTop(true)
            .setEnterAnim(R.anim.nav_default_enter_anim)
            .setExitAnim(R.anim.nav_default_exit_anim)
            .setPopEnterAnim(R.anim.nav_default_pop_enter_anim)
            .setPopExitAnim(R.anim.nav_default_pop_exit_anim);
    if ((item.getOrder() & Menu.CATEGORY_SECONDARY) == 0) {
        builder.setPopUpTo(findStartDestination(navController.getGraph()).getId(), false);
    }
    NavOptions options = builder.build();
    try {
        //TODO provide proper API instead of using Exceptions as Control-Flow.
        navController.navigate(item.getItemId(), null, options);
        return true;
    } catch (IllegalArgumentException e) {
        return false;
    }
}

Вы не можете изменить анимацию по своему желанию, но вы можете заменить анимацию по умолчанию, вам нужно использовать следующие имена в ваших файлах аним.

nav_default_enter_anim

nav_default_exit_anim

nav_default_pop_enter_anim

nav_default_pop_exit_anim

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...