我正在尝试从https://github.com/bluelinelabs/Conductor库中了解演示示例。
Motion看起来像这样
这是代码,负责动画
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?
答案 0 :(得分:0)
查看Fade
此转换会跟踪目标视图的可见性更改 开始和结束场景,并在它们成为时将视图淡入或淡出 可见或不可见。
和ChangeBounds
(以及其他类似类)的文档:
此转换捕获之前和之前的目标视图的布局边界 在场景改变之后,在动画期间动画化这些改变 过渡。
所以Fab(和文本)没有褪色,因为它是导体演示中的共享元素,并且它在下一个布局中以相同的" android:transitionName"在两种布局中。其他一切都改变了知名度,所以它已经褪色。
只需从textView中删除android:transitionName
即可。我认为指挥可能会做一些事情(即手动添加transitionName
),所以如果删除transitionName
没有帮助,请尝试删除/更改ID,这样它就不一样了在两种布局中。