In Android 8.0, il menu Impostazioni ottiene diversi componenti e widget che coprono usi comuni. I produttori e gli sviluppatori di dispositivi sono incoraggiati a utilizzare i componenti comuni quando estendono l'app Impostazioni in modo che le nuove interfacce utente rimangano coerenti con l'interfaccia utente Impostazioni esistente.
Ecco un riepilogo dei miglioramenti:
- Modifica del comportamento del divisore nel framework delle preferenze della libreria di supporto. Il divisore è ora tracciato tra le categorie.
- Modifica del tema della ActionBar. La ActionBar ora utilizza un tema di colore chiaro, con testo in colore accentuato.
- Nuovo layout delle preferenze. Lo spazio per le icone rimane anche quando una preferenza non ha icone.
Nuovi widget:
- Un widget di intestazione per i dettagli dell'applicazione. Visualizza l'icona dell'app, l'etichetta dell'app e altre informazioni.
- Un pulsante di espansione su alcune pagine. La pagina può iniziare compressa e nascondere gli elementi meno importanti finché l'utente non fa clic sul pulsante di espansione.
- Interfaccia utente di selezione app predefinita:
- L'interfaccia utente per la scelta del browser predefinito, dell'app telefonica predefinita, ecc.
- Precedentemente era una finestra di dialogo, ora è un'interfaccia utente a schermo intero basata su pulsanti di opzione.
- Una preferenza di stile "MasterSwitch". Questa è una preferenza con due target di clic. Il target sinistro porta a un frammento o intento di sottoinsieme. L'obiettivo destro è un interruttore che controlla l'attivazione/disattivazione dell'intera pagina.
Esempi e fonte
- Comportamento del divisore
- Tutte le pagine in 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 della ActionBar
- Tutte le pagine in Impostazioni vengono modificate per utilizzare il nuovo tema 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 dell'intestazione dell'app
- La maggior parte delle pagine di informazioni sull'applicazione in Impostazioni implementano già la nuova intestazione dell'app.
- Esempi e codice possono essere trovati su:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Pulsante Espandi
- Esempi e codice possono essere trovati su:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Nota: questo componente deve essere utilizzato insieme a DashboardFragment. (Vedi ulteriori dettagli su DashboardFragment in Architettura dell'informazione aggiornata .)
- Esempi e codice possono essere trovati su:
- Selettore app predefinito
- Puoi trovare il codice per la classe base in:
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Esistono diverse sottoclassi di DefaultAppPickerFragment, ciascuna delle quali implementa un selettore per intenti diversi.
- Puoi trovare il codice per la classe base in:
- Preferenza di stile MasterSwitch
- Il codice si trova su:
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Un esempio di caso d'uso è lo switch primario Wi-Fi. Puoi trovare un esempio in:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Il codice si trova su:
Implementazione
I produttori di dispositivi possono iniziare a utilizzare tutti i nuovi componenti già pronti all'uso. 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 ciascun componente per ulteriori dettagli.
Personalizzazione
- Comportamento del divisore. Per modificare la modalità di disegno del divisore, aggiorna lo stile per Impostazioni divisori e modifica il valore per quanto segue:
- consentireDivisoreAbove
- consentDividerBelow
- consentireDividerAfterLastItem
- Colore del tema ActionBar. Le attività devono utilizzare
Theme.DeviceDefault.Settings
come tema oppure creare un tema personalizzato utilizzandoTheme.DeviceDefault.Settings
come elemento principale. - Widget dell'intestazione dell'app. Utilizza i setter in AppHeaderController per personalizzare ogni campo e chiama build() una volta impostati tutti i campi.
- Pulsante Espandi:
- Per disabilitare completamente la funzionalità, sovrascrivere il costruttore per ProgressiveDisclosureMixin e impostare keepExpanded su true.
- Per personalizzare il numero di elementi da mostrare inizialmente, chiama il metodo
ProgressiveDisclosureMixin.setTileLimit()
durante il metodoonAttach(Context)
del frammento.