视图动画().沿Y轴平移() 填充空白空间。

3

我正在通过视图动画类实现滚动时头部视图的动画效果,如下所示:

view.animate()
.translationY(-view.getBottom())
.alpha(0)
.setDuration(HEADER_HIDE_ANIM_DURATION)
.setInterpolator(new DecelerateInterpolator());

问题在于我翻译的视图下面的视图没有填满翻译视图的空白处:
我的布局大致如下:
<LinnearLayout>
   <include layout"toolbar" /> //included layout which is the view translated
   <FrameLayout  /> //fragment container
</LinnearLayout>

我该如何解决这个问题?

1个回答

1

你是否尝试淡化工具栏? 试着手动操作FrameLayout。 类似这样:

        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);

如果我使用相对布局,问题仍然存在。我不想改变它的高度,只是将其翻译。 - Richard
好的,那么尝试更改setY而不是TranslationY。这应该会移动整个视图,并对其他布局产生影响。 - Mann
视图移动,而不是下面的那个。 - Richard
仍然不更新下面的图层。我认为 layout() 只影响它绘制的位置,而不影响视图范围。 - Richard
有没有解决方法可以去掉底部的黑色空白? - Ram
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接