如何在不聚焦的情况下为视图设置动画

时间:2019-09-18 07:39:20

标签: android animation nestedscrollview

我在NestedScrollView中有一个ImageView,当我向上滚动并且在屏幕上看不到ImageView时,正在使用以下方法将其与动画一起隐藏。

public static void collapse(final View v) {
        final int initialHeight = v.getMeasuredHeight();

        Animation a = new Animation() {
            @Override
            protected void applyTransformation(float interpolatedTime, Transformation t) {
                if (interpolatedTime == 1) {
                    v.setVisibility(View.GONE);
                } else {
                    v.getLayoutParams().height = initialHeight - (int) (initialHeight * interpolatedTime);
                    v.requestLayout();
                }
            }

            @Override
            public boolean willChangeBounds() {
                return true;
            }
        };

        // 1dp/ms
        a.setDuration((int) (initialHeight / v.getContext().getResources().getDisplayMetrics().density) * 4);
        v.startAnimation(a);
    }

但是一旦动画开始,它就会滚动回到ImageView,然后将其隐藏。 我不希望ImageView在动画时具有焦点。我使用动画的原因是,当我将ImageView的可见性设置为GONE时,屏幕上会出现闪烁或闪烁。

0 个答案:

没有答案