Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Fragment to część interfejsu aplikacji, której można używać wielokrotnie. Definiuje on własny układ i nim zarządza, ma własny cykl życia oraz może obsługiwać własne zdarzenia wejściowe. Fragmenty nie mogą funkcjonować samodzielnie. Muszą być hostowane przez działanie lub inny fragment. Hierarchia widoków danego fragmentu staje się częścią hierarchii widoków hosta lub jest do niej dołączana.
Modułowość
Fragmenty wprowadzają modułowość i możliwość wielokrotnego użytku do interfejsu aktywności, ponieważ umożliwiają podzielenie go na odrębne fragmenty. Aktywności to idealne miejsce do umieszczania w interfejsie aplikacji globalnych elementów, takich jak panel nawigacji. I na odwrót: fragmenty lepiej nadają się do definiowania interfejsu pojedynczego ekranu lub jego części i zarządzania nim.
Warto wziąć pod uwagę aplikację, która reaguje na różne rozmiary ekranu. Na większych ekranach aplikacja może wyświetlać statyczną szufladę nawigacji i listę w układzie siatki. Na mniejszych ekranach aplikacja może wyświetlać
dolny pasek nawigacyjny i listę w układzie liniowym.
Zarządzanie tymi odmianami działania
jest nieporęczne. Oddzielenie elementów nawigacyjnych od treści może ułatwić
zarządzanie tym procesem. Aktywność odpowiada za wyświetlanie prawidłowego interfejsu nawigacji, a fragment wyświetla listę z właściwym układem.
Rysunek 1. Dwie wersje tego samego ekranu na ekranie o różnych rozmiarach. Po lewej stronie na dużym ekranie znajduje się szuflada nawigacji, którymi zarządza aktywność, oraz lista siatki, którą zarządza fragment. Po prawej stronie mały ekran zawiera dolny pasek nawigacyjny, którym steruje dana aktywność, oraz liniową listę kontrolowaną przez fragment.
Podział interfejsu na fragmenty ułatwia zmianę wyglądu aktywności w czasie działania. Gdy Twoja aktywność ma STARTEDstan cyklu życia lub wyższą, fragmenty można dodawać, zastępować lub usuwać. Zapisy tych zmian możesz przechowywać w ramach backendu, którym zarządza aktywność, aby je cofać.
Tej samej klasy fragmentu można używać w ramach tej samej aktywności, w wielu działaniach, a nawet jako element podrzędny innego fragmentu. Mając to na uwadze, stosuj tylko fragment z logiką niezbędną do zarządzania własnym interfejsem użytkownika. Unikaj nieuzasadnionego modyfikowania
jednego fragmentu z innego.
Dalsze kroki
Więcej dokumentacji i zasobów związanych z fragmentami znajdziesz poniżej.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)"]]