另一种设置 OnScrollListener 的方法

Another way to set OnScrollListener

关于任务。 我使用从 Horizo​​ntalScrollView 扩展而来的自己的 CustomView。换句话说,就是一些实现 Adapter,用于添加另一个视图元素。此 CustomView 动画添加和删除元素。和!滚动时应为视图设置动画。

其他信息。 有一些工作算法可以使视图从中心到中心动画化。前任。当滚动到中心时增加视图比例,当从中心滚动时减小视图比例。

问题。 滚动时我只有一个动画问题。当用户滚动并且界面 OnScrollView 被触发时,我使用 ObjectAnimator 为视图(可见)设置动画。我附上了 OnScrollListener 的不同实现,它对我不起作用(下面列出)。实际上,当用户滚动时 - ScrollView 首先滚动所有元素,然后才调用方法 OnScroll。因此,结果动画工作有一些延迟。当滚动速度更快时,这种延迟更加明显。

注意 例如。在本机 Android 和 IOS 警报中工作相同的 CustomView。当您选择时间并滚动数字列表时,它们会发生变化,改变角度。因此,您会像鼓一样滚动它。

我希望有足够的信息。干杯!

// Some different onScrollListeners, that didn't 
// work for me (worked with delay).

// 1
getViewTreeObserver().addOnScrollChangedListenernew OnScrollChangedListener() {

        @Override
        public void onScrollChanged() {
            // Notify and animate view using - this.getScrollX();
        }
    });


// 2

  @Override
    public boolean onTouchEvent(MotionEvent ev) {
        int action = ev.getAction();
        switch (action) {
            // Notify and animate view using - this.getScrollX();
        }

        return super.onTouchEvent(ev);
    }


// 3

@Override
    protected void onScrollChanged(int x, int y, int oldX, int oldY) {
        super.onScrollChanged(x, y, oldX, oldY);

        // Notify and animate view using - this.getScrollX();
    }

.

.

.

.

我用最简单的解决方案完成了这个任务。如您所见,当 ScrollView 状态正在滚动时 - 我只是启动动画,它在不附加到滚动位置的情况下工作。所以这个任务的解决方案,它使用简单的比例变换直到我们滚动,而不是动画!

因此,我将在几周内将此作品作为新型列表适配器 - AnimatedViewPager 发布。我在 Github,GensaGames。