Desenler ve bileşenler

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ına çizilir.
  • ActionBar teması değişikliği. ActionBar artık vurgu rengi metinle açık renk temasını 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
    • Örnekleri ve kodu şu adreste bulabilirsiniz:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Not: Bu bileşen, DashboardFragment ile birlikte kullanılmalıdır. (Güncellenen Bilgi Mimarisi bölümünde DashboardFragment hakkında daha fazla bilgi edinin.)

  • 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ı bir intent için seçici uygulayan birkaç alt sınıfı vardır.
  • MasterSwitch stil tercihi
    • Kod şu adrestedir: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Kablosuz birincil anahtar, örnek kullanım alanlarından biridir. 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.