Material android 的过渡设计
Material transition design for android
我有这个应用程序,其中包含 1 个 activity 和 1 个片段。我们将其命名为 Fragment A。因此,Fragment A 由 3 个按钮 BtnA、BtnB 和 BtnC 组成。当我点击 Fragment A 中的 BtnA 时,Fragment B 将替换这个 Fragment A。在 Fragment B 中,我将有另外 3 个按钮 BtnD、BtnE、BtnF。我正在考虑使用 Material 过渡并制作以下动画:
(来源:googledrive.com)
我希望它至少向后兼容 Android Api 14。所以我已经研究并正在使用 Transitions-Everywhere。不过,我似乎无法使用它进行 Fragment-Fragment 转换。所以我想到了使用其他方法。以下是我认为可以完成这项工作的一些方法:
- 改为activity-activity(这似乎有点矫枉过正,因为
我实际上是在 activity)
中重复使用一些东西
- 一切尽在1activity,用场景带上按钮
在:
- activity 中有这 6 个按钮。
- 在 activity 中只有 3 个按钮,当单击 BtnA 时,继续将 BtnA、BtnB、BtnC 更改为 BtnD、BtnE、BtnF。
那么应该如何设计呢?我需要特别注意什么吗?我更喜欢选项 2.1,即 1 activity 中的 6 个按钮,但不确定这是否是推荐的方法。有什么建议吗?
提前致谢!
我是 Transitions-Everywhere 的作者,也许我可以提供帮助。
在这种情况下使用不同片段的真正原因是什么?
Fragment transitions 暂时没有向后移植,我没有太多空闲时间。
您可以这样执行转换:
TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new Slide(Gravity.BOTTOM));
transitionSet.addTransition(new ChangeBounds());
TransitionManager.beginDelayedTransition(buttonsContainer, transitionSet);
btnA.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
btnB.setVisibility(View.GONE)
btnC.setVisibility(View.GONE)
我有这个应用程序,其中包含 1 个 activity 和 1 个片段。我们将其命名为 Fragment A。因此,Fragment A 由 3 个按钮 BtnA、BtnB 和 BtnC 组成。当我点击 Fragment A 中的 BtnA 时,Fragment B 将替换这个 Fragment A。在 Fragment B 中,我将有另外 3 个按钮 BtnD、BtnE、BtnF。我正在考虑使用 Material 过渡并制作以下动画:
(来源:googledrive.com)
我希望它至少向后兼容 Android Api 14。所以我已经研究并正在使用 Transitions-Everywhere。不过,我似乎无法使用它进行 Fragment-Fragment 转换。所以我想到了使用其他方法。以下是我认为可以完成这项工作的一些方法:
- 改为activity-activity(这似乎有点矫枉过正,因为 我实际上是在 activity) 中重复使用一些东西
- 一切尽在1activity,用场景带上按钮
在:
- activity 中有这 6 个按钮。
- 在 activity 中只有 3 个按钮,当单击 BtnA 时,继续将 BtnA、BtnB、BtnC 更改为 BtnD、BtnE、BtnF。
那么应该如何设计呢?我需要特别注意什么吗?我更喜欢选项 2.1,即 1 activity 中的 6 个按钮,但不确定这是否是推荐的方法。有什么建议吗?
提前致谢!
我是 Transitions-Everywhere 的作者,也许我可以提供帮助。 在这种情况下使用不同片段的真正原因是什么? Fragment transitions 暂时没有向后移植,我没有太多空闲时间。
您可以这样执行转换:
TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(new Slide(Gravity.BOTTOM));
transitionSet.addTransition(new ChangeBounds());
TransitionManager.beginDelayedTransition(buttonsContainer, transitionSet);
btnA.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
btnB.setVisibility(View.GONE)
btnC.setVisibility(View.GONE)