Android view.animate().translationY()填充空白
我正在通过视图动画类设置标题视图的动画,如下所示:Android view.animate().translationY()填充空白,android,android-animation,Android,Android Animation,我正在通过视图动画类设置标题视图的动画,如下所示: view.animate() .translationY(-view.getBottom()) .alpha(0) .setDuration(HEADER_HIDE_ANIM_DURATION) .setInterpolator(new DecelerateInterpolator()); 问题在于,im translating视图下方的视图没有填充已翻译视图的空白: 我的布局看起来像这样: <LinnearLayout>
view.animate()
.translationY(-view.getBottom())
.alpha(0)
.setDuration(HEADER_HIDE_ANIM_DURATION)
.setInterpolator(new DecelerateInterpolator());
问题在于,im translating视图下方的视图没有填充已翻译视图的空白:
我的布局看起来像这样:
<LinnearLayout>
<include layout"toolbar" /> //included layout which is the view translated
<FrameLayout /> //fragment container
</LinnearLayout>
ObjectAnimator animator = ValueAnimator.ofFloat(0, -view.getBottom());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
toolbar.setTranslationY(-animation.getAnimatedValue)
mFrameLayout.layout(mFrameLayout.getLeft(), animation.getFraction() * mToolbar.getHeight(), mFrameLayout.getRight(), mFrameLayout.getBottom());
}
});
toolbar.startAnimation(animator);
//包含已转换视图的布局
//碎片容器
如何解决此问题?是否尝试淡出工具栏? 尝试手动操作框架布局。 大概是这样的:
<LinnearLayout>
<include layout"toolbar" /> //included layout which is the view translated
<FrameLayout /> //fragment container
</LinnearLayout>
ObjectAnimator animator = ValueAnimator.ofFloat(0, -view.getBottom());
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
toolbar.setTranslationY(-animation.getAnimatedValue)
mFrameLayout.layout(mFrameLayout.getLeft(), animation.getFraction() * mToolbar.getHeight(), mFrameLayout.getRight(), mFrameLayout.getBottom());
}
});
toolbar.startAnimation(animator);
同样的问题,如果我使用相对布局。我不想改变它的高度,只需要翻译它,然后试着改变setY而不是TranslationY。这将移动整个视图,并对其他布局产生影响。也没有区别。视图将移动,而不是其下方的视图,直到不更新下方的图层为止。我认为layout()不会影响视图边界,只是在它被混淆的地方。你需要一个动画师而不是一个动画,然后你可以添加一个UpdateListener。这肯定行得通。如果你愿意,我可以稍后给你一些代码。