Reycler视图和自定义视差效果

时间:2017-01-23 13:29:43

标签: android scroll android-recyclerview parallax

我创建视差效果移动图像背景仅取决于回收者视图的第一个元素的位置。

 @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);
}

问题是:当第一项回收器(标题)滚动屏幕时,背景图片以某种方式跳转到初始位置。

1 个答案:

答案 0 :(得分:0)

一旦视图滚动离开屏幕,RecyclerView可能仍然可以访问它,但它的getTop()值将具有一些随机值或0,这将导致您的视差效果跳跃。

您可以在班级中保留一个字段,该字段会保存当前的“滚动距离”并在dx回调中为其添加onScrolled(...),并使用此值来计算视差偏移。