Параллакс прокрутка фона recyclerview


Мой recyclerview имеет специально разработанный фон, в основном для добавления некоторого шума дизайна (как в whatsapp). Чего я хочу добиться, так это того, что когда я прокручиваю recyclerview, фон прокручивается с ним на половине скорости элементов в recyclerview.

Есть идеи, возможно ли это, и если да, то как это сделать?

1 2

1 ответ:

Это в значительной степени достижимо; однако предположим , что ваш вид recycler может прокручиваться вертикально на 10 000 пикселей, вы хотите, чтобы ваш фон был переведен на 5000 пикселей ? если это так, то вам придется использовать очень тяжелый файл изображения, который в вашем случае будет наиболее определенно работать из памяти. В противном случае сохранить представление ScrollView и посмотреть переработчик внутри заменить. Затем в вашем действии/фрагменте добавьте прослушиватель scrollChange к вашему recyclerView (это сообщит вам смещение вашего взгляда recycler, в частности вам нужен 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.