Pattern e componenti

In Android 8.0, il menu Impostazioni include diversi componenti e widget che coprono gli usi comuni. I produttori e gli sviluppatori di dispositivi sono invitati a utilizzare i componenti comuni quando estendono l'app Impostazioni in modo che le nuove interfacce utente rimangano coerenti con l'interfaccia utente esistente di Impostazioni.

Ecco un riepilogo dei miglioramenti:

  • Modifica del comportamento del divisore nel framework delle preferenze della libreria di supporto. Ora il divisore viene tracciato tra le categorie.
  • Modifica del tema dell'ActionBar. L'ActionBar ora utilizza il tema a colori chiari, con testo in colore di accento.
  • Nuovo layout delle preferenze. Lo spazio per le icone rimane anche quando una preferenza non ha un'icona.

Nuovi widget:

  • Un widget di intestazione per i dettagli dell'app. Mostra l'icona dell'app, l'etichetta dell'app e altre informazioni.
  • Un pulsante Espandi su alcune pagine. La pagina può essere avviata compressa e nascondere gli elementi meno importanti finché l'utente non fa clic sul pulsante Espandi.
  • UI del selettore di app predefinito:
    • L'interfaccia utente per la scelta del browser predefinito, dell'app Telefono predefinita e così via.
    • In precedenza era una finestra di dialogo, ora è un'interfaccia utente basata su pulsanti di opzione a schermo intero.
  • Una preferenza di stile "MasterSwitch". Si tratta di una preferenza con due scopi per i clic. Il target a sinistra rimanda a un frammento o a un'intenzione di sottoinsieme. Il target a destra è un pulsante di attivazione/disattivazione che controlla l'attivazione/la disattivazione dell'intera pagina.

Esempi e origine

  • Comportamento del divisore
    • Tutte le pagine delle impostazioni vengono modificate per utilizzare il nuovo comportamento del divisore.
    • Il comportamento del divisore è definito come ThemeOverlay in:
      packages/apps/Settings/res/values/styles_preference.xml
  • Modifica del tema dell'ActionBar
    • Tutte le pagine in Impostazioni vengono modificate per utilizzare il nuovo tema dell'ActionBar.
    • Il tema è definito in Theme.DeviceDefault.Settings
  • Nuovo layout delle preferenze
    • Molte pagine in Impostazioni ora utilizzano il nuovo layout delle preferenze.
    • Puoi trovare il codice in:
      packages/apps/Settings/res/values/styles_preference.xml
  • Widget intestazione app
    • La maggior parte delle pagine di informazioni sulle app in Impostazioni implementa già il nuovo intestazione App.
    • Puoi trovare esempi e codice all'indirizzo:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Pulsante Espandi
    • Puoi trovare esempi e codice all'indirizzo:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Nota:questo componente deve essere utilizzato insieme a DashboardFragment. (Per ulteriori dettagli su DashboardFragment, consulta la sezione Architettura dell'informazione aggiornata).

  • Selettore di app predefinito
    • Puoi trovare il codice della classe di base in:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Esistono diversi sottoclassi di DefaultAppPickerFragment, ognuno dei quali implementa un selettore per intent diversi.
  • Preferenza di stile MasterSwitch
    • Il codice si trova all'indirizzo: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Un esempio di caso d'uso è lo switch principale del Wi-Fi. Puoi trovare un esempio all'indirizzo: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Implementazione

I produttori di dispositivi possono iniziare a utilizzare tutti i nuovi componenti immediatamente. Se gli OEM decidono di implementare una nuova preferenza di stile "MasterSwitch" o un selettore di app predefinito, devono seguire gli esempi in questo documento e i file di riferimento (Javadoc) scritti con ogni componente per ulteriori dettagli.

Personalizzare il menu Impostazioni

  • Comportamento del divisore. Per modificare la modalità di disegno del divisore, aggiorna lo stile dei divisori delle impostazioni e modifica il valore per quanto segue:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Colore del tema dell'ActionBar. Le attività devono utilizzare Theme.DeviceDefault.Settings come tema o creare un tema personalizzato utilizzando Theme.DeviceDefault.Settings come elemento principale.
  • Widget intestazione app. Utilizza i setter in AppHeaderController per personalizzare ogni campo e chiama build() una volta impostati tutti i campi.
  • Pulsante Espandi:
    • Per disattivare completamente la funzionalità, sostituisci il costruttore di ProgressiveDisclosureMixin e imposta keepExpanded su true.
    • Per personalizzare il numero di elementi da mostrare inizialmente, chiama il metodo ProgressiveDisclosureMixin.setTileLimit() durante il metodo onAttach(Context) del frammento.