Leitfaden zu den Funktionen der Support Library

Hinweis:Mit der Veröffentlichung von Android 9.0 (API-Level 28) wurde eine neue Version der Supportbibliothek namens AndroidX veröffentlicht, die Teil von Jetpack ist. Die AndroidX-Bibliothek enthält die vorhandene Supportbibliothek sowie die neuesten Jetpack-Komponenten.

Sie können die Supportbibliothek weiterhin nutzen. Historische Artefakte (Version 27 und älter und als android.support.* verpackt) bleiben in Google Maven verfügbar. Die Entwicklung neuer Bibliotheken erfolgt jedoch vollständig in der AndroidX-Bibliothek.

Wir empfehlen, die AndroidX-Bibliotheken in allen neuen Projekten zu verwenden. Sie sollten auch die Migration vorhandener Projekte zu AndroidX in Betracht ziehen.

Die Support Libraries bieten eine breite Palette von Klassen für das Erstellen von Apps – von grundlegenden App-Komponenten über UI-Widgets über die Medienverarbeitung bis hin zu TV-App-Komponenten. Viele der Klassen sind abwärtskompatible Implementierungen, aber einige sind bereits neue Funktionen.

Dieses Dokument bietet einen Überblick über die wichtigsten Kategorien von Features, die in der Supportbibliothek verfügbar sind, sowie bestimmte Klassen, die Sie beim Erstellen Ihrer App kennen sollten.

Informationen darüber, wie Sie Ihrem Anwendungsentwicklungsprojekt Supportbibliothekscode hinzufügen, finden Sie unter Supportbibliothekscode einrichten. Informationen zum Einschließen bestimmter Supportbibliothekspakete in Ihr Projekt finden Sie unter Supportbibliothekspakete.

Anwendungskomponenten

Diese Support Library-Klassen bieten abwärtskompatible Implementierungen wichtiger Plattformfunktionen. Mit diesen Implementierungen werden in der Regel ältere Versionen der Klasse erweitert, um neue Methoden und Funktionen zu verarbeiten, die in neueren Releases der Plattform hinzugefügt wurden. Einige dieser Klassen sind vollständige, statische Implementierungen der Framework-APIs.

  • Aktivitäten
    • ActivityCompat: Enthält eine abwärtskompatible Implementierung für aktuelle, wichtige Funktionen von Aktivitäten wie Laufzeitberechtigungen und Animationsübergänge.
    • FragmentActivity: Bietet eine abwärtskompatible Implementierung für Aktivitäten zur Verwendung der Supportbibliotheksversionen von Fragment und Loader APIs.
    • AppCompatActivity: bietet Material-Farbdesigns, Widget-Färbung und Unterstützung für die App-Leiste für ältere Geräte. Für die Verwendung dieser Klasse müssen Sie Theme.AppCompat-Themen verwenden, um eine einheitliche visuelle Präsentation zu ermöglichen.
  • Fragment: Stellt eine eigenständige Implementierung der Fragment-Framework-Klasse bereit. Diese Klasse muss mit FragmentActivity verwendet werden.
  • ContextCompat: Bietet Unterstützung für Funktionen, die in neueren Releases der Context-Klasse eingeführt wurden, einschließlich Berechtigungsunterstützung, Dateizugriff und Farbinformationen.
  • IntentCompat: Bietet Unterstützung für Funktionen, die in neueren Releases der Klasse Intent eingeführt wurden, einschließlich Methoden zum Auswählen und Starten bestimmter Aktivitäten.
  • Loader: Stellt eine statische Implementierung der Loader-Framework-Klasse bereit und ist die Basisklasse für die Supportklassen AsyncTaskLoader und CursorLoader.
  • Preference – Diese Klasse und ihre Unterklassen bieten Implementierungen der Benutzeroberfläche für App-Einstellungen auf abwärtskompatible Weise.
  • ContentResolverCompat: Bietet Unterstützung für Funktionen, die in neueren Releases der Klasse ContentResolver eingeführt wurden, insbesondere die Methode query(), mit der Unterstützung für das Abbrechen einer laufenden Abfrage.

Benutzeroberfläche

Diese Supportbibliotheksklassen bieten Implementierungen von wichtigen Widgets und Verhaltensweisen der Benutzeroberfläche und helfen Ihnen, modernere App-Oberflächen auf älteren Geräten zu erstellen. Einige dieser Widgets sind nur über die Supportbibliothek verfügbar.

Layout-Container für allgemeine Zwecke

Diese Supportklassen stellen Container für Benutzeroberfläche bereit, die an verschiedene Designanwendungsfälle angepasst werden können.

  • RecyclerView: Erstellt ein Layout für die Anzeige langer Listen und verfolgt dabei eine Strategie, um einen hohen Arbeitsspeicherverbrauch zu vermeiden. Mit dieser Klasse können Sie eine eingeschränkte Fensteransicht eines größeren Datasets erstellen und so vermeiden, dass beim Anzeigen der Liste viel Arbeitsspeicher verbraucht wird. Weitere Informationen zur Verwendung von RecyclerView finden Sie im Leitfaden zur Recycler-Ansicht.
  • ViewPager: Bietet ein Layout, mit dem der Nutzer nach links und rechts durch die Datenseiten blättern kann.
  • GridLayout stellt ein Layout mit seinen untergeordneten Elementen in einem rechteckigen Raster bereit, das beliebige Spannen von zusammenhängenden Zellen und eine flexible Bereichsverteilung unterstützt. Diese Klasse bietet eine abwärtskompatible Version der Klasse GridLayout, die in Android 4.0 (API-Ebene 14) eingeführt wurde.
  • PercentFrameLayout und PercentRelativeLayout: Hier geben Sie Layouts an, die prozentuale Dimensionen und Ränder für untergeordnete Ansichten und Inhalte unterstützen.

Hinweis: Die Klassen ViewPager, RecyclerView, PercentFrameLayout und PercentRelativeLayout sind nur in den Supportbibliotheken verfügbar.

Spezielle Layoutcontainer

Diese Supportklassen bieten kompatible Implementierungen bestimmter Layoutmuster, z. B. Leistenansichten, die vom Bildschirmrand gezogen werden können, verschiebbare Steuerfelder und verschachtelte Listen in Listen.

  • DrawerLayout: Erstellt ein Layout, mit dem interaktive Leistenansichten vom Rand des Ansichtsfensters herausgenommen werden können.
  • SlidingPaneLayout bietet ein horizontales Mehrfensterlayout zur Verwendung auf der obersten Ebene einer App-Benutzeroberfläche zum Erstellen von Layouts, die sich reibungslos an viele verschiedene Bildschirmgrößen anpassen lassen. Sie können auf größeren Bildschirmen maximiert und auf kleinere Bildschirme minimiert werden.
  • NestedScrollView: Ein Scroll-Layout, das die Verschachtelung anderer Scroll-Ansichten unterstützt, sodass Sie Listen mit Elementen erstellen können, die zusätzliche untergeordnete Listen enthalten. Diese verschachtelten Listen können Elemente enthalten, die getrennt von der übergeordneten Liste horizontal oder vertikal scrollen.
  • SwipeRefreshLayout: Stellt ein Layout bereit, das das Aktualisieren von Daten für Listen oder andere Layouts mit einer Wischgeste mit dem Finger ermöglicht.

Ansichten, Dialogfelder und Widgets

Die Supportbibliotheken bieten eine Reihe von Klassen für die Anzeige von Inhalten und die Bereitstellung von Nutzerinteraktionselementen in einem Layout.

  • CardView – Eine benutzerdefinierte Klasse der Supportbibliothek zum Erstellen von Grafikkarten im Material Design-Stil. Diese Klasse basiert auf FrameLayout mit abgerundeten Ecken und einem Schlagschatten.
  • AppCompatDialogFragment: Stellt Dialoge mit einheitlichen Stilen bereit, indem DialogFragment erweitert und AppCompatDialog verwendet wird.
  • NotificationCompat: Unterstützung neuerer Benachrichtigungsstile auf abwärtskompatible Weise.
  • SearchView: Stellt eine Klasse bereit, mit der der Nutzer eine Suchanfrage eingeben und eine Anfrage an einen Suchanbieter senden kann. Die Klasse ist in erster Linie für die Verwendung in einer App-Leiste vorgesehen.

Material Design

Die Supportbibliotheken bieten eine Reihe von Klassen zur Implementierung von Empfehlungen für Material Design-Benutzeroberflächen.

  • CoordinatorLayout: Stellt einen Container auf oberster Ebene für Layouts bereit, die Material Design-Komponenten und -Verhaltensweisen enthalten. Diese Klasse kann auch als Container für bestimmte Interaktionen mit einer oder mehreren untergeordneten Ansichten verwendet werden.
  • AppBarLayout: Bietet eine Implementierung vieler Scrollfunktionen des Konzepts für die App-Leiste von Material Design.
  • FloatingActionButton: erstellt eine unverankerte Schaltfläche zum Anzeigen einer speziellen Art von gesponserter Aktion. Dieses Material Design-UI-Element wird als eingekreistes Symbol über der App-Benutzeroberfläche angezeigt. Weitere Informationen finden Sie unter Unverankerte Aktionsschaltfläche hinzufügen.
  • DrawerLayout: Erstellt eine Navigationsleiste, also einen UI-Bereich, in dem das Hauptnavigationsmenü der App angezeigt wird. Sie wird angezeigt, wenn der Nutzer vom linken Rand des Bildschirms mit dem Finger wischt oder auf das Leistensymbol in der App-Leiste tippt. Weitere Informationen finden Sie unter Navigationsleiste erstellen.
  • TabLayout: stellt ein Layout für die Anzeige von Seiten mit Tabs bereit. Dieses Widget ist für die Verwendung mit der Klasse ViewPager vorgesehen.
  • Snackbar: Bietet ein Widget zum Anzeigen von einfachem Feedback zu einem Vorgang über das Snackbar-Pop-up.

Grafik

Das Paket android.support.graphics.drawable unterstützt Vektor-Drawables. Wenn du Vektor-Drawables verwendest, kannst du mehrere PNG-Assets durch eine einzelne im XML-Datei definierte Vektorgrafik ersetzen.

VectorDrawableCompat unterstützt Vektor-Drawables ab API-Level 9. AnimatedVectorDrawableCompat unterstützt ab API-Level 11 animierte Vektor-Drawables.

Barrierefreiheit

Das android.support.v4.view.accessibility-Paket bietet Kompatibilitätsklassen zur Implementierung von Bedienungshilfen, die in API-Level 14 und höher eingeführt wurden. Damit können Bedienungshilfen die Nutzerinteraktion mit auf dem Bildschirm angezeigten Elementen beobachten und identifizieren.

  • ExploreByTouchHelper: Bietet Unterstützung für Bedienungshilfen in einer benutzerdefinierten View, die eine Sammlung ansichtsähnlicher logischer Elemente darstellt.

Medienwiedergabe

Die Android Support Library bietet einen Backport der Media Router-Funktion für Geräte, auf denen Versionen der Plattform vor Android 4.1 (API-Level 16) ausgeführt werden. Diese Klassen ermöglichen die Steuerung der Medienwiedergabe auf verbundenen Android-Geräten:

  • MediaRouter: Ermöglicht Apps, das Routing von Medienkanälen und -streams vom aktuellen Gerät an externe Lautsprecher und Zielgeräte zu steuern.
  • MediaControllerCompat: Ermöglicht einer App, mit einer laufenden Mediensitzung zu interagieren. Apps können über diesen Mechanismus Schaltflächen zur Mediensteuerung bereitstellen und andere Wiedergabebefehle an die Sitzung senden.
  • MediaSessionCompat: Bietet eine Fernbedienung für die Medienwiedergabe, über die Nutzer mit Mediensteuerelementen, Lautstärketasten, Medientasten und Steuerelementen für die Medienwiedergabe in anderen Apps oder auf separaten Geräten interagieren können.

TV-Apps

Das Android SDK enthält Bibliotheken zur Unterstützung von Formfaktoren wie großen Bildschirmen und den zugehörigen Controllern. Eine App kann auf die entsprechende Supportbibliothek angewiesen sein, um Funktionen für eine breite Palette von Plattformversionen bereitzustellen. Außerdem können Inhalte von externen Bildschirmen, Lautsprechern und anderen Zielgeräten bereitgestellt werden.

Wear-Apps

Das Android SDK enthält Bibliotheken zur Unterstützung von Smartwatches. Diese Bibliotheken bieten Funktionen für Apps, die Nutzern beim Tragen einer Uhr zur Verfügung stehen.

Dienstprogramme

Die Android Support Library bietet eine Reihe von Funktionen, die nicht in das Framework integriert sind. Diese Bibliotheken bieten eine Reihe von Dienstprogrammen für Anwendungen.