Wie kann man RecyclerView reibungslos machen?

Dies ist eher wie eine generische Frage, aber nach viel Suche und versuchen, ich bin nicht in der Lage zu verstehen, warum dies so schwer zu erreichen ist. Dies ist die engste Antwort, die ich finden kann, aber immer noch nicht in der Lage zu implementieren.

Ich bin mit RecyclerView mit GridLayoutManager. Alles, was ich will, ist das Raster-Layout, um reibungslos zu scrollen (wie Standard-Gallary-App), nichts Besonderes, aber die Standard-Implementierung von Raster Layout-Manager scrollt die Ansicht in einer 'ruckartigen' Weise. Ich habe versucht, die Methode von oben Link aber erfolglos zu implementieren.

  • Wie kann ich die Sprachaufnahme in Android anhalten?
  • So importiere ich ein Java-Paket in Android Studio
  • Android: Spezielle URL, um den Marktplatz auf eine bestimmte App zu öffnen?
  • Neue gms.maps.MapView Rendering verzögert ein bisschen in einer ListView?
  • Verwenden von OpenMAX (IL?) Für Audio / Video-Decodierung auf Android
  • GetLocationOnScreen () gibt Null zurück
  • Ich habe auch versucht, LinearSmoothScroller zu implementieren, aber ich bin nicht sicher, wie man computeScrollVectorForPosition Methode implementiert. Die Google-Dokumentation zu computeScrollVectorForPosition hat buchstäblich 0 Wörter.

    Ich fand dieses 3-teilige Tutorial , aber es war von sehr wenig Hilfe. Also, alles was ich fragen möchte ist: Kann es irgendeine Art von Vorlagencode geben, den wir in LinearSmoothScroller implementieren können oder indem wir RecyclerView.SmoothScroller erweitern und ein glattes Scrollen erreichen? Auch wenn der Code von der Anzahl der Items und Items pro Zeile in gridlayout abhängt, muss es eine Methode geben, um es einfach zu machen. Bin ich hier etwas fehlt

  • Welche Versionen von Android SDK unterstützen Codierung in welchen Java-Versionen?
  • Wie man redirect_uri_mismatch Fehler behandeln, wenn Android app offline Zugriff auf Web-Back-End erhält?
  • Ungelöste Referenz: Kotlin benötigt 2 Builds nach dem Clean, um Code bei der Verwendung von kapt zu holen
  • Dateiname nach filerader asynchron geladene Datei abrufen
  • Seekbar für zwei Werte
  • Wie ändere ich das Thema für AlertDialog
  • 4 Solutions collect form web for “Wie kann man RecyclerView reibungslos machen?”

    Die typische Quelle des "ruckartigen" Scrollens in Android ist die App, die zu viel Zeit auf dem Hauptanwendungs-Thread hat, der die Benutzeroberfläche aktualisiert. Im Falle von RecyclerView würde dies bedeuten, dass zu viel Zeit in onBindViewHolder() oder möglicherweise in onCreateViewHolder() . Diejenigen, die jeweils in Unter-Millisekunden-Zeiten zurückkehren müssen, was bedeutet, dass Sie keine Disk I / O oder Netzwerk-I / O in ihnen tun können.

    Denke ich fand das problem Ich benutze holder.photo.setImageBitmap (BitmapFactory.decodeFile (itemList.get (position) .get AbsolutePath ())); On onBindViewHolder () und die Bilddatei ist etwa 100kb jeweils mit etwa einem Dutzend Bilder in der Liste

    Ja, das wird die Festplatten-E / A und die Bilddekodierung auf dem Hauptanwendungs-Thread machen. Das wird langsam genug sein, um jank in der Benutzeroberfläche zu verursachen (dh "ruckartiges" Scrollen).

    Verwenden Sie eine ImageView wie Picasso oder Universal Image Loader, da sie Ihre ImageView asynchron aus der Bitmap ImageView können.

    Diese Beispiel-App verwendet Universal Image Loader, um den Inhalt eines RecyclerView (mit GridLayoutManager ) zu GridLayoutManager , wobei die Datenquelle die verfügbaren Videos auf dem Gerät ist.

    Füge dies hinzu, wo immer du recyclerview in deiner Aktivität oder deinem Fragment erklärt hast

     RecyclerView mRecyclerview = (RecyclerView) findViewById(...); mRecyclerview.setNestedScrollingEnabled(false); 

    SetNestedScrollview (false) macht die Arbeit für Sie.

     android:animateLayoutChanges="false" 

    Füge einfach hinzu

     animateLayoutChanges = true 

    In recyclerview xml

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.