Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Wzory i komponenty
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W Androidzie 8.0 menu Ustawienia zostało wzbogacone o kilka komponentów i widżetów, które obejmują najczęstsze zastosowania. Producentów i deweloperów urządzeń zachęcamy do korzystania z wspólnych komponentów podczas rozszerzania aplikacji Ustawienia, aby nowe interfejsy były spójne z obecnym interfejsem Ustawień.
Oto podsumowanie ulepszeń:
- Zmiana zachowania przegrody w ramach preferencji biblioteki pomocy. Podział między kategoriami jest teraz zaznaczony.
- Zmiana motywu paska narzędzi. Pasek czynności używa teraz jasnego motywu z tekstem w kolorze akcentu.
- Nowy układ ustawień Miejsce na ikony pozostaje, nawet jeśli ustawienie nie ma ikony.
Nowe widżety:
- Widget nagłówka z informacjami o aplikacji Wyświetla ikonę aplikacji, etykietę aplikacji i inne informacje.
- przycisk rozwijania na niektórych stronach. Strona może się wyświetlać w postaci zwiniętej i ukrywa elementy o mniejszym znaczeniu, dopóki użytkownik nie kliknie przycisku rozwinięcia.
- Domyślny interfejs selektora aplikacji:
- Interfejs do wybierania domyślnej przeglądarki, domyślnej aplikacji telefonu itp.
- Wcześniej była to karta, a teraz jest to interfejs z przyciskami opcji na pełnym ekranie.
- Preferowany styl „MasterSwitch”. To ustawienie z 2 celami kliknięcia. Kierowanie z lewej strony prowadzi do fragmentu podrzędnego lub zamiaru. Prawy cel to przełącznik, który włącza lub wyłącza całą stronę.
Przykłady i źródło
- Działanie separatora
- Wszystkie strony w sekcji Ustawienia zostały zmodyfikowane, aby używać nowego zachowania separatora.
- Zachowanie separatora jest zdefiniowane jako nakładka motywu w sekcji:
packages/apps/Settings/res/values/styles_preference.xml
- Zmiana motywu ActionBar
- Wszystkie strony w Ustawieniach zostały zmodyfikowane, aby używać nowego motywu paska działań.
- Motyw jest zdefiniowany w Theme.DeviceDefault.Settings
- Nowy układ preferencji
- Wiele stron w sekcji Ustawienia korzysta teraz z nowego układu ustawień.
- Kod znajdziesz w tych miejscach:
packages/apps/Settings/res/values/styles_preference.xml
- Widżet nagłówka aplikacji
- Większość stron z informacjami o aplikacji w Ustawieniach już korzysta z nowego nagłówka aplikacji.
- Przykłady i kod znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Przycisk rozwijania
- Wybieranie domyślnej aplikacji
- Kod klasy bazowej znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Istnieje kilka podklas DefaultAppPickerFragment, z których każda implementuje selektor dla innego zamiaru.
- Ustawienie stylu MasterSwitch
- Kod znajduje się pod adresem:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Przykładem zastosowania jest przełącznik główny Wi-Fi. Przykład znajdziesz tutaj:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
Implementacja
Producenci urządzeń mogą od razu korzystać ze wszystkich nowych komponentów.
Jeśli OEM zdecyduje się wdrożyć nowy styl preferencji „MasterSwitch” lub domyślny selektor aplikacji, powinien postępować zgodnie z przykładami w tym dokumencie oraz plikach referencyjnych (Javadoc) napisanych dla poszczególnych komponentów.
Dostosowywanie menu ustawień
- Działanie separatora. Aby zmienić sposób wyświetlania linii oddzielającej, zaktualizuj styl linii oddzielającej w ustawieniach i zmień wartość tych parametrów:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Kolor motywu ActionBar. Aktywności powinny mieć motyw
Theme.DeviceDefault.Settings
lub niestandardowy motyw z elementem nadrzędnym Theme.DeviceDefault.Settings
.
- Widżet nagłówka aplikacji. Użyj setterów w AppHeaderController, aby dostosować poszczególne pola, a potem wywołaj
build()
, gdy wszystkie pola zostaną ustawione.
- Przycisk Rozwiń:
- Aby całkowicie wyłączyć tę funkcję, zastąpij konstruktor klasy ProgressiveDisclosureMixin i ustaw wartość keepExpanded na prawdę.
- Aby dostosować liczbę elementów wyświetlanych na początku, wywołaj metodę
ProgressiveDisclosureMixin.setTileLimit()
w metodzie onAttach(Context)
fragmentu.
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,["# Patterns and components\n\nIn Android 8.0, the Settings menu gains several components and widgets that\ncover common uses. Device manufacturers and developers are encouraged to use the\ncommon components when extending the Settings app so new user interfaces stay\nconsistent with the existing Settings UI.\n\n\nHere is a summary of improvements:\n\n- Divider behavior change in support library Preference framework. Divider is now drawn between categories.\n- ActionBar theme change. The ActionBar now uses light color theme, with accent color text.\n- New preference layout. The space for icons remains even when a preference has no icon.\n\n\nNew widgets:\n\n- A header widget for app details. Displays app icon, app label and other information.\n- An expand button on some pages. Page can start as collapsed and hide less important items until user clicks expand button.\n- Default app picker UI:\n - The UI for choosing default browser, default phone app, etc.\n - Formerly a dialog, now it's a full screen radio button-based UI.\n- A \"MasterSwitch\" style preference. This is a preference with two click targets. Left target leads to a subsetting fragment or intent. Right target is a switch toggle, controlling on/off for the entire page.\n\nExamples and source\n-------------------\n\n- Divider behavior\n - All pages in Settings are modified to use the new divider behavior.\n - The divider behavior is defined as a ThemeOverlay in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- ActionBar theme change\n - All pages in Settings are modified to use the new ActionBar theme.\n - The theme is defined in Theme.DeviceDefault.Settings\n- New preference layout\n - Many pages in Settings are now using the new preference layout.\n - You can find the code in: \n `packages/apps/Settings/res/values/styles_preference.xml`\n- App header widget\n - Most app information pages in Settings are already implementing the new App header.\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java`\n- Expand button\n - Examples and code can be found at: \n `packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java`\n\n **Note:** This component must be used together with\n DashboardFragment. (See more details about DashboardFragment in [Updated Information Architecture](/docs/core/settings/info-architecture).)\n- Default app picker\n - You can find the code for base class in: \n `packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java`\n - There are several subclasses of DefaultAppPickerFragment, each implementing a picker for different intent.\n- *MasterSwitch* style preference\n - Code is at: `https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java`\n - An example use case is Wi-Fi primary switch. You can find an example at: `packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java`\n\nImplementation\n--------------\n\n\nDevice manufacturers can start using all of the new components out of the box.\nIf OEMs decide to implement a new \"MasterSwitch\" style preference or default app\npicker, they should follow the examples in this document and the reference files\n(Javadoc) written with each component for more details.\n\nCustomize the settings menu\n---------------------------\n\n- Divider behavior. To change how divider is drawn, update the style for Settings dividers and change the value for the following:\n - `allowDividerAbove`\n - `allowDividerBelow`\n - `allowDividerAfterLastItem`\n- ActionBar theme color. Activities should use `Theme.DeviceDefault.Settings` as their theme, or create a custom theme using `Theme.DeviceDefault.Settings` as parent.\n- App header widget. Use setters in AppHeaderController to customize each field and call `build()` once all fields are set.\n- Expand button:\n - To fully disable the functionality, override the constructor for ProgressiveDisclosureMixin and set keepExpanded to true.\n - To customize how many items to show initially, call the `ProgressiveDisclosureMixin.setTileLimit()` method during fragment's `onAttach(Context)` method."]]