视差滚动背景recyclerview

Parallax scrolling background recyclerview

我的 recyclerview 有一个自定义设计的背景,基本上是为了添加一些设计噪音(比如在 whatsapp 中)。 我想要实现的是,当我滚动 recyclerview 时,背景以 recyclerview 中项目的一半速度滚动。

知道这是否可行吗?如果可行,该怎么做?

这几乎是可以实现的;然而,假设您的回收站视图可以垂直滚动 10,000 像素,您希望您的背景平移 5000 像素吗?如果这是那么你将不得不使用一个非常大的图像文件,在你的情况下,这肯定会 运行 内存不足。 否则在 frameLayout 中保留一个 ScrollView 和一个回收视图。 然后在你的 activity/fragment 中添加一个 scrollChange 监听器到你的 recyclerView (这会告诉你你的回收者视图的位移,特别是你需要 dy )。 根据垂直位移,您可以像这样滚动滚动视图 scrollView.smoothScrollBy(0,dy); xml 代码代码如下所示:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <!--your imageView that is bigger than screen height comes here-->

            </LinearLayout>
        </ScrollView>
        <android.support.v7.widget.RecyclerView
            android:background="@android:color/transparent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </FrameLayout>
</LinearLayout>

Also please feel free to show me your progress and also if you are stuck.