【问题标题】:Another way to set OnScrollListener另一种设置 OnScrollListener 的方法
【发布时间】:2016-04-07 08:26:39
【问题描述】:

关于任务。 我使用了自己的从 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();
    }

.

.

.

.

【问题讨论】:

    标签: android scroll uiscrollview scrollview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 2021-03-04
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多