Scroll ist ein Mechanismus zum Scrollen von Inhalten, der es dem Benutzer ermöglicht, Informationen anzuzeigen, die über den Bildschirm eines mobilen Geräts hinausgehen. Laut Apple Developer Documentation, 2024 ist UIScrollView das Basiselement zur Implementierung des Scrollens unter iOS. Unter Android übernimmt RecyclerView eine ähnliche Rolle, indem es Gesten verarbeitet und die Datenanzeige verwaltet. Ohne Scrollen wären moderne mobile Oberflächen unmöglich — Nachrichtenfeeds, Kontaktlisten und Textseiten nutzen es jede Sekunde.
Wichtige Punkte
Scroll ist ein interaktiver Mechanismus zum Bewegen des sichtbaren Inhaltsbereichs innerhalb des Viewports eines mobilen Geräts. Der Benutzer wischt mit dem Finger über den Bildschirm, und der Inhalt verschiebt sich in Richtung der Geste und gibt verborgene Teile der Benutzeroberfläche frei. Scrollen ist ein grundlegendes Interaktionsmuster: Laut einer Studie der Nielsen Norman Group (2023) verbringen Nutzer 78% ihrer Zeit in mobilen Anwendungen mit dem Scrollen von Inhalten.
In der mobilen Entwicklung wird Scrollen durch spezialisierte Komponenten implementiert — ScrollView unter iOS und RecyclerView unter Android. Diese Komponenten verarbeiten nicht nur Berührungen, sondern verwalten auch die Wiederverwendung von Elementen, Animationen und Trägheit. Der Entwickler muss nur untergeordnete Ansichten in den Container einfügen, während die gesamte Scroll-Mechanik von der Plattform übernommen wird.
Laut Google I/O 2024 verwenden moderne Scroll-Implementierungen Gestenkomposition: Das System bestimmt die Wischrichtung, Geschwindigkeit und Beschleunigung des Fingers und wendet dann ein physikalisches Modell für sanfte Verzögerung an. Die Scroll-Trägheit wird auf Basis eines Reibungskoeffizienten berechnet, der sich zwischen den Plattformen unterscheidet — iOS verwendet Quadratic easing, Android verwendet Spline-basierte Interpolation.
Vertikales Scrollen ist die häufigste Art des Scrollens und wird in Nachrichtenfeeds, Chat-Listen und Profilen verwendet. Der gesamte Inhalt wird von oben nach unten angeordnet, und der Benutzer wischt nach oben oder unten, um zu navigieren. Vertikales Scrollen ist intuitiv und wird standardmäßig auf allen mobilen Plattformen unterstützt.
Horizontales Scrollen wird für Karussells, Bildergalerien und Kategorie-Tabs verwendet. Unter iOS wird UICollectionView mit horizontalem Layout verwendet, unter Android HorizontalScrollView oder RecyclerView mit LinearLayoutManager.HORIZONTAL. Horizontales Scrollen erfordert eine sorgfältige Verwendung, da es mit den Systemgesten „Zurück“ und dem App-Wechsel kollidiert.
Unendliches Scrollen ist eine Technik zum Laden von Daten, wenn der Benutzer sich dem Ende einer Liste nähert. Wenn das letzte Element angezeigt wird, fordert die App automatisch den nächsten Datenbatch vom Server an. Laut UX Collective (2025) erhöht Infinite Scroll das Engagement bei Content-Apps um 40%, senkt jedoch die Conversion bei E-Commerce aufgrund der schwierigen Navigation zur Fußzeile.
Parallax-Scrollen erzeugt einen Tiefeneffekt: Die Hintergrundebene bewegt sich beim Scrollen langsamer als die Vordergrundebene. Diese Technik wird häufig auf Landingpages und in Profilen für visuelle Wirkung eingesetzt. Die Implementierung erfordert das Überlagern mehrerer Ebenen mit unterschiedlichen Geschwindigkeitskoeffizienten — unter iOS erfolgt dies über UIScrollViewDelegate und die Änderung des Offsets der Hintergrundansichten.
Unter iOS wird Scrollen durch die Klasse UIScrollView implementiert, die von UITableView, UICollectionView und UITextView geerbt wird. UIScrollView fängt Berührungen ab, analysiert das Berührungsmuster und berechnet das Bewegungsdelta. Wenn der Benutzer eine scharfe Bewegung ausführt, startet das System eine Trägheitsanimation — Verzögerung, die nach der Formel velocity * decayFactor ^ t berechnet wird. Laut WWDC 2023 verwendet Apple parametrische Verzögerung mit einem Faktor von 0,998, was ein natürliches Reibungsgefühl ergibt.
Unter Android wird Scrollen über ViewDragHelper und OverScroller verwaltet. Das System empfängt ein MotionEvent.ACTION_MOVE-Ereignis, berechnet den Versatz und wendet ihn auf scrollY oder scrollX an. Die Trägheit wird von der Klasse OverScroller berechnet, die Spline-Interpolation basierend auf einem physikalischen Modell mit einstellbarer Reibung verwendet. Der Standard-Reibungskoeffizient beträgt 0,015 — je höher der Wert, desto schneller stoppt der Scroll.
Der Hauptunterschied zwischen den Plattformen ist der Bounce-Effekt. iOS fügt standardmäßig eine Gummi-Verformung beim Scrollen über Inhaltsgrenzen hinaus hinzu (Bounce), die dem Benutzer signalisiert, dass das Ende erreicht wurde. Android erforderte vor Version 12 die explizite Aktivierung des Overscroll-Effekts und erhielt mit Material Design 3 native Unterstützung für Stretch-Overscroll. Beide Plattformen unterscheiden sich auch in der Behandlung von Scroll-Chaining — der Weitergabe des Scrollens von einem verschachtelten Container an seinen Elterncontainer beim Erreichen der Grenze.
| Komponente | Plattform | Scroll-Typ | Virtualisierung | Layout |
|---|---|---|---|---|
| UIScrollView | iOS | Vertikal / Horizontal | Nein | Content size |
| UICollectionView | iOS | Vertikal / Horizontal | Ja | UICollectionViewLayout |
| RecyclerView | Android | Vertikal / Horizontal | Ja | LayoutManager |
| ScrollView (Android) | Android | Vertikal | Nein | LinearLayout |
| HorizontalScrollView | Android | Horizontal | Nein | LinearLayout |
UIScrollView ist ein grundlegender Container unter iOS, der keine Zellenwiederverwendung unterstützt. Beim Hinzufügen von 1000 Ansichten werden alle im Speicher erstellt, was kritisch für die Leistung ist. UICollectionView löst dieses Problem durch den Dequeuing-Mechanismus — sichtbare Zellen werden wiederverwendet und ausgeblendete aus der Hierarchie entfernt. Laut Apple Engineering (2023) bietet UICollectionView mit Compositional Layout bis zu 50% flüssigere FPS bei der Arbeit mit großen Datensätzen im Vergleich zu UIScrollView.
RecyclerView ist die Standard-Scroll-Komponente unter Android, die das ViewHolder-Muster zur Elementwiederverwendung verwendet. RecyclerView hat eine flexible Architektur: LayoutManager bestimmt die Anordnung (Linear, Grid, Staggered), ItemAnimator verwaltet Animationen und ItemDecoration fügt Abstände und Trennlinien hinzu. Laut Android Developer Summit 2024 kann RecyclerView mit DiffUtil Listenaktualisierungen von 10.000 Elementen in 16 ms verarbeiten — innerhalb eines einzelnen Animationsframes.
Die Flüssigkeit des Scrollens wird in FPS (Bildern pro Sekunde) gemessen — das Ziel ist 60 FPS für normale Displays und 120 FPS für ProMotion. Jeder Frame muss innerhalb von 16 ms (60 FPS) oder 8 ms (120 FPS) verarbeitet werden. Wenn Scrollen zu Ruckeln (Jank, Frame-Ausfälle) führt, erlebt der Benutzer Mikroverzögerungen, die die Wahrnehmung der App-Qualität negativ beeinflussen. Laut Google Android Performance (2024) löschen 75% der Benutzer eine App bei regelmäßigen Scroll-Verzögerungen.
Die Hauptursachen für Scroll-Verzögerungen sind Layout Thrashing und übermäßige Allokationen. Layout Thrashing tritt auf, wenn der Entwickler Layout-Parameter (getWidth, getHeight) nach Änderung von Eigenschaften liest und so eine Neuberechnung erzwingt. Jeder solche Aufruf setzt den Layout-Cache zurück und zwingt das System, Measure und Layout erneut auszuführen. Die Lösung besteht darin, Lese- und Schreiboperationen zu gruppieren: zuerst alle Messungen, dann alle Änderungen.
Virtualisierung ist eine wichtige Optimierungstechnik für große Listen. Unter iOS erstellt UICollectionView automatisch Zellen nur für sichtbare Elemente. Unter Android verwendet RecyclerView einen Pool wiederverwendbarer ViewHolder. Zusätzlich wird Prefetching angewendet: Das System lädt Elemente 1–2 Bildschirme im Voraus, damit die Zellen zum Zeitpunkt des Scrollens bereit sind. Unter Android übernimmt GapWorker diese Aufgabe, unter iOS der prefetchDataSource.
Bilder erfordern eine separate Optimierung. Hintergrundladen mit Dekodierung in einem separaten Thread verhindert die Blockierung des UI-Threads. Bibliotheken wie Glide (Android) und Kingfisher (iOS) bieten integrierten Festplatten-/Arbeitsspeicher-Cache, Lazy Loading und Platzhalter während des Ladens. Laut SDWebImage-Benchmarks (2024) beschleunigt die Verwendung von Bild-Caching das Scrollen von Galerien um 60% im Vergleich zum direkten Laden aus dem Netzwerk.
Ein weiteres häufiges Problem sind schwere Layout-Hierarchien. Jede verschachtelte Ansicht erhöht die Measure/Layout-Zeit. Die empfohlene Tiefe beträgt nicht mehr als 5 Verschachtelungsebenen. Unter Android ermöglicht ConstraintLayout flache Hierarchien, während unter iOS Stack Views und SwiftUI das Layout automatisch optimieren. Die Verwendung von Shadow und CornerRadius bei einer großen Anzahl von Elementen verlangsamt ebenfalls das Scrollen — sie sollten nur bei Bedarf angewendet werden.
Häufig gestellte Fragen
Scroll ist ein Mechanismus zum Scrollen von Inhalten, die die Bildschirmgröße des Geräts überschreiten. Der Benutzer wischt mit dem Finger über den Bildschirm, und der Inhalt bewegt sich in Richtung der Geste und gibt verborgene Teile frei. Das Scrollen wird unter iOS über UIScrollView und unter Android über RecyclerView implementiert.
ScrollView (Android) lädt alle untergeordneten Elemente auf einmal in den Speicher — bei 500 Elementen werden alle 500 Ansichten gleichzeitig erstellt. RecyclerView verwendet Virtualisierung: Es erstellt nur sichtbare Zellen und verwendet sie während des Scrollens wieder. Für Listen mit dynamischen Daten sollten Sie immer RecyclerView wählen.
Infinite Scroll ist eine Technik, bei der neue Daten automatisch geladen werden, wenn das Ende der aktuellen Liste erreicht ist. Wenn der Benutzer bis zur unteren Grenze scrollt, sendet die App eine Anfrage an die API und fügt neue Elemente hinzu. Dies verbessert die Benutzererfahrung in sozialen Netzwerken und Content-Feeds.
Die Scroll-Optimierung umfasst Virtualisierung von Elementen durch Zellenwiederverwendung, Lazy Loading von Bildern mit Caching, flache Layout-Hierarchien (nicht mehr als 5 Ebenen), Prefetching von Daten 1–2 Bildschirme im Voraus und die Vermeidung von Layout Thrashing. Unter iOS verwenden Sie prefetchDataSource, unter Android GapWorker.
Scroll-Trägheit ist der Effekt der sanften Verzögerung nach einem scharfen Fingerwisch. Das System merkt sich die Geschwindigkeit der Fingerbewegung und setzt das Scrollen mit allmählicher Geschwindigkeitsabnahme fort, wodurch physikalische Reibung simuliert wird. iOS verwendet Quadratic easing, Android verwendet Spline-basierte Interpolation mit einem Reibungskoeffizienten von 0,015.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch