【问题标题】:Exclude BottomNavigation from Transition Animations in Android从 Android 中的过渡动画中排除 BottomNavigation
【发布时间】:2017-04-16 02:51:53
【问题描述】:

我一直在四处寻找,但找不到有助于解决此特定问题的答案。 我的应用程序有一个自定义的滑入滑出效果,如下所示:

Intent intent = new Intent(getApplicationContext(), MyActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);

问题

问题是我在所有活动中都包含一个 BottomNavigation,我不想让它变成动画,我想排除它。

我正在努力实现的目标

我想从动画中排除底部导航。或者,换句话说,我怎样才能只为过渡之间的内容制作动画?

编辑:我已经尝试过使用共享元素,但我希望它在 API 21 下工作。

【问题讨论】:

  • 也许你用它做一个共享元素转换?这有帮助吗? stackoverflow.com/questions/27658577/…
  • 对不起,我忘了包括我也希望它在 API 21 下工作。至少在 API 17 中。
  • @ChristophMayr 由于我使用的是带有 overridePendingTransition 的动画,我该如何调用 excludeTarget(findViewById(bottomNavId), true); 方法?

标签: android android-layout animation android-animation android-view


【解决方案1】:

无法从overridePendingTransition() API 中排除组件。相反,您必须转到Transitions API。特别是,这是Slide 过渡动画,您在其中排除了底部导航视图。

Transition slide = new Slide(Gravity.RIGHT);
slide.excludeTarget(bottomNavigationView, true);
getWindow().setEnterTransition(slide);

查看详细实现here

您可以看到support transition package 将Transitions API 功能反向移植到API 14。但我在类列表中找不到Slide 转换。否则你可以使用TransitionEverywhere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多