タスクについて。 私はHorizontalScrollViewから拡張された独自のCustomViewで作業しました。言い換えれば、それは、別のビュー要素を追加するための、いくつかの実現アダプタです。このCustomViewは、要素の追加と削除をアニメートします。そして!スクロールするときにビューをアニメーション化する必要があります。OnScrollListenerを設定する別の方法
その他の情報 ビューをアニメーション化するための作品アルゴリズムが中心にあります。 Ex。中央からスクロールするときにビューのスケールを大きくし、中央からスクロールするときにビューのスケールを大きくします。
問題。 スクロールするときにアニメーションに問題が1つしかありませんでした。ユーザーがスクロールし、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();
}
。
。
。
。