Desenler ve bileşenler

Android 8.0'da Ayarlar menüsü, yaygın kullanımları kapsayan çeşitli bileşenler ve widget'lar içerir. Cihaz üreticileri ve geliştiricilerin, yeni kullanıcı arayüzlerinin mevcut Ayarlar Arayüzü ile tutarlı kalması için Ayarlar uygulamasını genişletirken ortak bileşenleri kullanmaları teşvik ediliyor.

İşte iyileştirmelerin bir özeti:

  • Destek kitaplığı Tercih çerçevesinde bölücü davranışı değişikliği. Bölücü artık kategoriler arasında çiziliyor.
  • ActionBar teması değişikliği. ActionBar artık vurgu renkli metinlerle birlikte açık renk temasını kullanıyor.
  • Yeni tercih düzeni. Bir tercihin simgesi olmadığında bile simge alanı kalır.

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şletme düğmesi. Sayfa daraltılmış olarak başlayabilir ve kullanıcı genişletme düğmesini tıklayana kadar daha az önemli öğeleri gizleyebilir.
  • Varsayılan uygulama seçici arayüzü:
    • Varsayılan tarayıcıyı, varsayılan telefon uygulamasını vb. seçmek için kullanıcı arayüzü.
    • Eskiden bir diyalogdu, şimdi tam ekran radyo düğmesi tabanlı bir kullanıcı arayüzü.
  • Bir "MasterSwitch" tarzı tercihi. Bu, iki tıklama hedefi olan bir tercihtir. Sol hedef, bir alt küme parçasına veya amacına yol açar. Sağ hedef, tüm sayfanın açık/kapalı olmasını kontrol eden bir anahtardır.

Örnekler ve kaynak

  • Bölücü davranışı
    • Ayarlar'daki tüm sayfalar yeni bölücü davranışını kullanacak şekilde değiştirildi.
    • Bölücü davranışı şu şekilde ThemeOverlay olarak tanımlanır:
      packages/apps/Settings/res/values/styles_preference.xml
  • ActionBar tema değişikliği
    • Ayarlar'daki tüm sayfalar yeni ActionBar temasını kullanacak şekilde değiştirildi.
    • Tema Theme.DeviceDefault.Settings'de tanımlanmıştır.
  • Yeni tercih düzeni
    • Ayarlar'daki birçok sayfa artık yeni tercih düzenini kullanıyor.
    • Kodu şurada bulabilirsiniz:
      packages/apps/Settings/res/values/styles_preference.xml
  • Uygulama başlığı widget'ı
    • Ayarlar'daki çoğu uygulama bilgi sayfası zaten yeni Uygulama başlığını uyguluyor.
    • Örnekler ve kod şu adreste bulunabilir:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Genişlet düğmesi
    • Örnekler ve kod şu adreste bulunabilir:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Not: Bu bileşenin DashboardFragment ile birlikte kullanılması gerekir. ( Güncellenmiş Bilgi Mimarisi'nde DashboardFragment hakkında daha fazla ayrıntıya bakın.)

  • Varsayılan uygulama seçici
    • Temel sınıfın kodunu şurada bulabilirsiniz:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • DefaultAppPickerFragment'in her biri farklı amaç 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 bir kullanım durumu Wi-Fi birincil anahtarıdır. Bir örneği şu adreste bulabilirsiniz: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Uygulama

Cihaz üreticileri kutudan çıkan tüm yeni bileşenleri kullanmaya başlayabilir. OEM'ler yeni bir "MasterSwitch" stil tercihi veya varsayılan uygulama seçici uygulamaya karar verirse, daha fazla ayrıntı için bu belgedeki örnekleri ve her bileşenle birlikte yazılan referans dosyalarını (Javadoc) izlemelidirler.

Özelleştirme

  • Bölücü davranış. Bölücünün nasıl çizileceğini değiştirmek için Ayarlar bölücülerin stilini güncelleyin ve aşağıdakilerin değerini değiştirin:
    • izinDividerAbove
    • izinDividerBelow
    • izinDividerAfterLastItem
  • ActionBar tema rengi. Etkinlikler, temaları olarak Theme.DeviceDefault.Settings kullanmalı veya üst öğe olarak Theme.DeviceDefault.Settings kullanarak özel bir tema oluşturmalıdır.
  • Uygulama başlığı widget'ı. Her alanı özelleştirmek için AppHeaderController'daki ayarlayıcıları kullanın ve tüm alanlar ayarlandıktan sonra build() öğesini çağırın.
  • Genişlet düğmesi:
    • İşlevselliği tamamen devre dışı bırakmak için ProgressiveDiscloseMixin yapıcısını geçersiz kılın ve keepExpanded'ı true olarak ayarlayın.
    • Başlangıçta kaç öğenin gösterileceğini özelleştirmek için parçanın onAttach(Context) yöntemi sırasında ProgressiveDisclosureMixin.setTileLimit() yöntemini çağırın.