27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Desenler ve bileşenler
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android 8.0'de Ayarlar menüsüne, yaygın kullanımları kapsayan çeşitli bileşenler ve widget'lar eklendi. Cihaz üreticilerinin ve geliştiricilerin, yeni kullanıcı arayüzlerinin mevcut Ayarlar kullanıcı arayüzüyle tutarlı kalması için Ayarlar uygulamasını genişletirken ortak bileşenleri kullanmaları önerilir.
İyileştirmelerin özeti şu şekildedir:
- Destek kitaplığı tercih çerçevesinde bölücü davranışı değişikliği. Ayırıcı artık kategoriler arasında çizilir.
- ActionBar teması değişikliği. ActionBar artık vurgu rengi metinle açık renk teması kullanıyor.
- Yeni tercih düzeni. Bir tercihin simgesi olmasa bile simge alanı gösterilir.
Yeni widget'lar:
- Uygulama ayrıntıları için bir başlık widget'ı. Uygulama simgesini, uygulama etiketini ve diğer bilgileri görüntüler.
- Bazı sayfalarda genişlet düğmesi. Sayfa, daraltılmış olarak başlayabilir ve kullanıcı genişlet düğmesini tıklayana kadar daha az önemli öğeleri gizleyebilir.
- Varsayılan uygulama seçici kullanıcı arayüzü:
- Varsayılan tarayıcı, varsayılan telefon uygulaması vb. seçmek için kullanılan kullanıcı arayüzü.
- Önceden iletişim kutusu olan bu özellik, artık tam ekran radyo düğmesine dayalı bir kullanıcı arayüzüdür.
- "MasterSwitch" stil tercihi. Bu, iki tıklama hedefi içeren bir tercihtir. Sol hedef, alt küme fragmanına veya amaca yönlendirir. Sağ hedef, sayfanın tamamının açık/kapalı durumunu kontrol eden bir açma/kapatma düğmesidir.
Örnekler ve kaynak
- Bölme davranışı
- Ayarlar'daki tüm sayfalar, yeni bölücü davranışını kullanacak şekilde değiştirildi.
- Bölme davranışı, şu konumlarda ThemeOverlay olarak tanımlanır:
packages/apps/Settings/res/values/styles_preference.xml
- ActionBar teması değişikliği
- Ayarlar'daki tüm sayfalar yeni ActionBar temasını kullanacak şekilde değiştirildi.
- Tema, Theme.DeviceDefault.Settings alanında tanımlanır.
- Yeni tercih düzeni
- Ayarlar'daki birçok sayfada artık yeni tercih düzeni kullanılıyor.
- Kodu şu konumlarda bulabilirsiniz:
packages/apps/Settings/res/values/styles_preference.xml
- Uygulama başlığı widget'ı
- Ayarlar'daki uygulama bilgileri sayfalarının çoğunda yeni uygulama başlığı zaten uygulanmaktadır.
- Örnekleri ve kodu şu adreste bulabilirsiniz:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Genişlet düğmesi
- Varsayılan uygulama seçici
- Temel sınıfın kodunu şu konumlarda bulabilirsiniz:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- DefaultAppPickerFragment'in her biri farklı intent için bir seçici uygulayan birkaç alt sınıfı vardır.
- MasterSwitch stil tercihi
- Kod şu adrestedir:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Örnek kullanım alanı, kablosuz birincil anahtardır. Bir örneği şu adreste bulabilirsiniz:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
Uygulama
Cihaz üreticileri, yeni bileşenlerin tümünü kutudan çıkar çıkmaz kullanmaya başlayabilir.
OEM'ler yeni bir "MasterSwitch" stili tercihi veya varsayılan uygulama seçici uygulamaya karar verirse daha fazla bilgi için bu belgedeki örnekleri ve her bileşenle birlikte yazılan referans dosyalarını (Javadoc) izlemelidir.
Ayarlar menüsünü özelleştirme
- Ayırıcı davranışı. Bölücünün çizilme şeklini değiştirmek için Ayarlar bölücülerinin stilini güncelleyin ve aşağıdakilerin değerini değiştirin:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- ActionBar tema rengi. Etkinlikler tema olarak
Theme.DeviceDefault.Settings
'ü kullanmalı veya üst öğe olarak Theme.DeviceDefault.Settings
'ü kullanarak özel bir tema oluşturmalıdır.
- Uygulama üstbilgisi widget'ı. Her bir alanı özelleştirmek için AppHeaderController'daki ayarlayıcıları kullanın ve tüm alanlar ayarlandıktan sonra
build()
işlevini çağırın.
- Genişlet düğmesi:
- İşlevi tamamen devre dışı bırakmak için ProgressiveDisclosureMixin sınıfının oluşturucusunu geçersiz kılın ve keepExpanded değerini true olarak ayarlayın.
- Başlangıçta kaç öğenin gösterileceğini özelleştirmek için fragment'in
onAttach(Context)
yöntemi sırasında ProgressiveDisclosureMixin.setTileLimit()
yöntemini çağırın.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 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."]]