Android Conductor ArcMotion示例

时间:2017-02-16 07:08:44

标签: android android-layout conductor

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

Motion看起来像这样

enter image description here

这是代码,负责动画

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?

1 个答案:

答案 0 :(得分:0)

怎么知道,应该为FAB执行动作?

查看Fade

documentation
  

此转换会跟踪目标视图的可见性更改   开始和结束场景,并在它们成为时将视图淡入或淡出   可见或不可见。

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

  

此转换捕获之前和之前的目标视图的布局边界   在场景改变之后,在动画期间动画化这些改变   过渡。

所以Fab(和文本)没有褪色,因为它是导体演示中的共享元素,并且它在下一个布局中以相同的" android:transitionName"在两种布局中。其他一切都改变了知名度,所以它已经褪色。

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

只需从textView中删除android:transitionName即可。我认为指挥可能会做一些事情(即手动添加transitionName),所以如果删除transitionName没有帮助,请尝试删除/更改ID,这样它就不一样了在两种布局中。