2017-01-23 13 views
0

私は視差効果を作成します。画像の背景を移動するのは、リサイクラビューの最初の要素の位置のみに依存します。Reyclerビューとカスタム視差効果

@Override 
public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
    super.onScrolled(recyclerView, dx, dy); 
    if ((holder = recyclerView.findViewHolderForAdapterPosition(0)) != null) { 
      int offset = recyclerView.findViewHolderForAdapterPosition(0).itemView.getTop()/10; 
      backgroundPhoto.setTop(offset); 
} 

問題がある:リサイクル(ヘッダ)の最初の項目が画面の外にスクロールするとき、背景画像が何らかの形OT初期位置をジャンプ。

答えて

0

画面からスクロールしても、RecyclerViewにはまだアクセスできますが、getTop()の値にはランダムな値があり、0の場合は視差効果が飛びます。

onScrolled(...)コールバックに現在の「スクロール距離」を保存しているフィールドを保持してdxを追加し、この値を使用して視差オフセットを計算することができます。

+0

実際にバックグラウンドの "ジャンプ" setTop関数が呼び出されなかったとき。背景画像の位置を変えることができるものは何ですか? –

関連する問題