2017-01-23 40 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); 
} 

問題是:當第一個回收站(header)滾動屏幕時,背景圖片以某種方式跳到初始位置。

回答

0

一旦視圖從屏幕上滾動出來,RecyclerView可能仍然可以訪問它,但它的getTop()值將有一些隨機值或0,這將導致您的視差效果跳躍。

你可以保持場在你的類,它保存當前「滾動距離」,並在onScrolled(...)回調添加dx到它,並使用這個值來計算視差補償。

+0

事實上,當背景「跳」機頂盒功能沒有打電話。還有什麼可以改變的背景圖像中的位置? –