【发布时间】:2016-12-13 23:41:34
【问题描述】:
所以我们正在尝试制作一个动画,在 FAB 消失之前移动它并打开一个工具栏。问题是当我运行 TranslationAnimation 时,FAB 会消失,然后从屏幕外滑入。 fromxDelta 和 fromYDelta 的行为也不像我期望的那样。
谁能指出我做错了什么或帮助我理解这个调用是如何工作的?
private void circularReveal(View toolbar, View fab) {
final View view1 = toolbar;
// get the center for the clipping circle
int cx = (toolbar.getLeft() + toolbar.getRight()) / 2;
int cy = (toolbar.getTop() + toolbar.getBottom()) / 2;
// get the final radius for the clipping circle
int finalRadius = Math.max(toolbar.getWidth(), toolbar.getHeight());
// create the animator for this view (the start radius is zero)
final SupportAnimator anim = ViewAnimationUtils.createCircularReveal(toolbar, cx, cy, 0, finalRadius);
//todo create an animation to move the fab.
TranslateAnimation translateAnimation = new TranslateAnimation(Animation.ABSOLUTE, 0f,
Animation.ABSOLUTE , -100f,
Animation.ABSOLUTE , 0f,
Animation.ABSOLUTE , -100f);
translateAnimation.setDuration(2000L);
translateAnimation.setFillAfter(true);
Animation.AnimationListener animationListener = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
view1.setVisibility(View.VISIBLE);
anim.start();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
};
translateAnimation.setAnimationListener(animationListener);
fab.startAnimation(translateAnimation);
}
EDIT 我在代码 sn-p 中清理了一些变量名。
【问题讨论】:
-
这个方法怎么称呼?圆形显示(工厂,工具栏); ?因为您在名为工具栏的视图上应用 translateAnimation。
-
该方法是从onClickListener中调用的,该方法是在片段onCreatView()中在Fab上设置的。
标签: android android-animation floating-action-button