【问题标题】:Android Conductor ArcMotion exampleAndroid Conductor ArcMotion 示例
【发布时间】:2017-02-16 07:08:44
【问题描述】:

我正在尝试从 https://github.com/bluelinelabs/Conductor 库中理解演示示例。

运动看起来像这样

这是代码,负责动画

public class ArcFadeMoveChangeHandler extends TransitionChangeHandler {
    public ArcFadeMoveChangeHandler() { }

    @Override
    @NonNull
    protected Transition getTransition(@NonNull ViewGroup container, View from, View to, boolean isPush) {
        TransitionSet transition = new TransitionSet()
                .setOrdering(TransitionSet.ORDERING_SEQUENTIAL)
                .addTransition(new Fade(Fade.OUT))
                .addTransition(new TransitionSet().addTransition(new ChangeBounds()).addTransition(new ChangeClipBounds()).addTransition(new ChangeTransform()))
                .addTransition(new Fade(Fade.IN));

        transition.setPathMotion(new ArcMotion());

        return transition;
    }
}

它怎么知道应该为 FAB 执行该动作?如何为 FAB 执行弧线运动,但将屏幕上的所有其余元素设置为 FadeOut?

【问题讨论】:

    标签: android android-layout conductor


    【解决方案1】:

    它怎么知道应该为 FAB 执行运动?

    查看documentationFade

    此过渡跟踪目标视图可见性的变化 开始和结束场景,并在它们变为时淡入或淡出视图 可见或不可见。

    以及ChangeBounds(和其他类似类)的文档:

    此过渡捕获目标视图之前和之前的布局边界 在场景改变之后,并在 过渡。

    所以 Fab(和文本)不会褪色,因为它是导体演示中的共享元素,并且它存在于下一个布局中,并且在两个布局中具有相同的“android:transitionName”。其他一切都改变了可见性,因此它消失了。

    如何为 FAB 执行弧线运动,但将屏幕上的所有其余元素设置为 FadeOut?

    只需从 textView 中删除 android:transitionName。我认为 Conductor 可能会在幕后做一些事情(即手动添加 transitionName),因此如果删除 transitionName 没有帮助,请尝试删除/更改 id,以便在两种布局中都不相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-08
      • 2016-02-25
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多