Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Ein Fragment steht für einen wiederverwendbaren Teil der UI Ihrer App. Ein Fragment definiert und verwaltet sein eigenes Layout, hat einen eigenen Lebenszyklus und kann seine eigenen Eingabeereignisse verarbeiten. Fragmente können nicht
von alleine leben. Sie müssen von einer Aktivität oder einem anderen Fragment gehostet werden. Die Ansichtshierarchie des Fragments wird Teil der Ansichtshierarchie des Hosts oder wird an diese angehängt.
Modularität
Fragmente machen die UI Ihrer Aktivität modular und wiederverwendbar, da Sie sie in einzelne Blöcke unterteilen können. Aktivitäten sind ideal, um globale Elemente um die Benutzeroberfläche Ihrer App zu platzieren, z. B. eine Navigationsleiste. Umgekehrt eignen sich Fragmente besser, um die UI eines einzelnen Bildschirms oder Teils eines Bildschirms zu definieren und zu verwalten.
Stellen Sie sich eine App vor, die auf verschiedene Bildschirmgrößen reagiert. Auf größeren Bildschirmen kann es sinnvoll sein, in der App eine statische Navigationsleiste und eine Liste in einem Rasterlayout anzuzeigen. Auf kleineren Bildschirmen kann es sinnvoll sein, eine untere Navigationsleiste und eine Liste in einem linearen Layout anzuzeigen.
Die Verwaltung dieser Variationen
in der Aktivität ist umständlich. Wenn Sie die Navigationselemente vom Inhalt trennen, ist dieser Prozess einfacher zu handhaben. Die Aktivität ist dann für die Anzeige der richtigen Navigations-UI verantwortlich, während das Fragment die Liste im richtigen Layout anzeigt.
Abbildung 1: Zwei Versionen desselben Bildschirms auf unterschiedlichen Bildschirmgrößen. Auf einem großen Bildschirm links enthält ein großer Bildschirm eine Navigationsleiste, die von der Aktivität gesteuert wird, und eine Rasterliste, die über das Fragment gesteuert wird. Rechts enthält ein kleiner Bildschirm eine Navigationsleiste am unteren Rand, die von der Aktivität gesteuert wird, sowie eine lineare Liste, die vom Fragment gesteuert wird.
Wenn Sie die UI in Fragmente unterteilen, können Sie die Darstellung Ihrer Aktivität zur Laufzeit einfacher ändern. Solange sich Ihre Aktivität im LebenszyklusstatusSTARTED oder höher befindet, können Fragmente hinzugefügt, ersetzt oder entfernt werden. Diese Änderungen können Sie in einem Back-Stack speichern, der von der Aktivität verwaltet wird, sodass die Änderungen rückgängig gemacht werden können.
Sie können mehrere Instanzen derselben Fragmentklasse innerhalb derselben Aktivität, in mehreren Aktivitäten oder sogar als untergeordnetes Element eines anderen Fragments verwenden. Stellen Sie vor diesem Hintergrund nur ein Fragment mit der Logik bereit, die zur Verwaltung der eigenen UI erforderlich ist. Vermeiden Sie es, ein Fragment von einem anderen abhängig zu machen oder zu verändern.
Nächste Schritte
Weitere Dokumentation und Ressourcen zu Fragmenten finden Sie im Folgenden.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Fragments\n\nA [`Fragment`](/reference/androidx/fragment/app/Fragment) represents a\nreusable portion of your app's UI. A fragment defines and manages its own\nlayout, has its own lifecycle, and can handle its own input events. Fragments\ncan't live on their own. They must be *hosted* by an activity or another\nfragment. The fragment's view hierarchy becomes part of, or *attaches to*,\nthe host's view hierarchy.\n| **Note:** Some [Android Jetpack](/jetpack/androidx/versions) libraries, such as [Navigation](/guide/navigation), [`BottomNavigationView`](/reference/com/google/android/material/bottomnavigation/BottomNavigationView), and [`ViewPager2`](/jetpack/androidx/releases/viewpager2), are designed to work with fragments.\n\nModularity\n----------\n\nFragments introduce modularity and reusability into your activity's UI by\nletting you divide the UI into discrete chunks. Activities are an ideal\nplace to put global elements around your app's user interface, such as a\nnavigation drawer. Conversely, fragments are better suited to define and\nmanage the UI of a single screen or portion of a screen.\n\nConsider an app that responds to various screen sizes. On larger screens, you\nmight want the app to display a static navigation drawer and a list in a grid\nlayout. On smaller screens, you might want the app to display a bottom\nnavigation bar and a list in a linear layout.\n\nManaging these variations in the activity is\nunwieldy. Separating the navigation elements from the content can make this\nprocess more manageable. The activity is then responsible for displaying\nthe correct navigation UI, while the fragment displays the list with the proper\nlayout.\n**Figure 1.** Two versions of the same screen on different screen sizes. On the left, a large screen contains a navigation drawer that is controlled by the activity and a grid list that is controlled by the fragment. On the right, a small screen contains a bottom navigation bar that is controlled by the activity and a linear list that is controlled by the fragment.\n\nDividing your UI into fragments makes it easier to modify your activity's\nappearance at runtime. While your activity is in the `STARTED`\n[lifecycle state](/guide/components/activities/activity-lifecycle) or\nhigher, fragments can be added, replaced, or removed. And you can keep a record\nof these changes in a back stack that is managed by the activity, so that\nthe changes can be reversed.\n\nYou can use multiple instances of the same fragment class within the\nsame activity, in multiple activities, or even as a child of another\nfragment. With this in mind, only provide a fragment with\nthe logic necessary to manage its own UI. Avoid depending on or\nmanipulating one fragment from another.\n\nNext steps\n----------\n\nFor more documentation and resources related to fragments, see the following.\n\n### Getting Started\n\n- [Create a fragment](/guide/fragments/create)\n\n### Further topics\n\n- [Fragment manager](/guide/fragments/fragmentmanager)\n- [Fragment transactions](/guide/fragments/transactions)\n- [Navigate between fragments using animations](/guide/fragments/animate)\n- [Fragment lifecycle](/guide/fragments/lifecycle)\n- [Saving state with fragments](/guide/fragments/saving-state)\n- [Communicate with fragments](/guide/fragments/communicate)\n- [Working with the AppBar](/guide/fragments/appbar)\n- [Display dialogs with DialogFragment](/guide/fragments/dialogs)\n- [Debug your fragments](/guide/fragments/debugging)\n- [Test your fragments](/guide/fragments/test)\n\n### Samples\n\n### Videos\n\n- [Single Activity: Why, when, and how (Android Dev Summit '18)](https://www.youtube.com/watch?v=2k8x8V77CrU)\n- [Fragments: Past, present, and future (Android Dev Summit '19)](https://www.youtube.com/watch?v=RS1IACnZLy4)"]]