【问题标题】:How can i customize setupActionBarWithNavController animations?如何自定义 setupActionBarWithNavController 动画?
【发布时间】:2019-03-28 18:54:47
【问题描述】:

我可以轻松自定义 android 导航操作,就像这段代码一样,但我无法自定义来自 drawerbottomnavigation 和菜单的操作。

有没有办法自定义这个动作?来自此配置的操作 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" />

【问题讨论】:

    标签: android android-jetpack android-jetpack-navigation


    【解决方案1】:

    查看源代码,我注意到导航库在菜单导航发生时将每个传递的动画替换为默认动画。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      相关资源
      最近更新 更多