2016-05-15 6 views
2

Meine Recyclerview hat einen benutzerdefinierten Hintergrund, im Grunde, um einige Design-Lärm hinzuzufügen (wie in WhatsApp). Was ich erreichen möchte, ist, dass wenn ich die Recycleransicht scrolle, der Hintergrund mit der halben Geschwindigkeit der Elemente in der Recycleransicht scrollt.Parallax Scrolling Hintergrund Recyclerview

Irgendeine Idee, wenn das möglich ist und ob, wie man es geht?

+0

Können Sie einige Code schreiben? – Haroon

+0

Es ist eine Standard Recyclerview mit den Methoden, die Zeilen enthalten Bildansichten in der Mitte des Bildschirms, so dass der Rest des Bildschirms mit dem Hintergrund ausgefüllt wird. Code ist viel zu viel zu posten, da ich mit> 15 Viewtypen arbeite. – user5102612

Antwort

2

Dies ist ziemlich erreichbar; Wenn Ihre Recycleransicht jedoch vertikal um 10.000 Pixel scrollen kann, möchten Sie, dass Ihr Hintergrund mit 5000 Pixeln übersetzt wird? Wenn dies der Fall ist, dann müssen Sie eine sehr schwere Bilddatei verwenden, die in Ihrem Fall definitiv keinen Speicher mehr hat. Andernfalls behalten Sie eine ScrollView- und eine Recycler-Ansicht in einem frameLayout bei. Fügen Sie dann in Ihrer Aktivität/Ihrem Fragment einen scrollChange-Listener zu Ihrer recyclerView hinzu (dies wird Ihnen die Verschiebung Ihrer Recycler-Ansicht mitteilen, besonders wenn Sie dy benötigen). Nach der verticall Verschiebung Sie die Scroll-Ansicht wie dieser scrollView.smoothScrollBy(0,dy); den XML-Code-Code sieht wie folgt aus blättern:

<?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. 
+0

Vielen Dank, funktioniert perfekt! – user5102612