In Android 8.0, il menu Impostazioni include diversi componenti e widget che gli utilizzi più comuni. I produttori e gli sviluppatori di dispositivi sono invitati a utilizzare componenti comuni quando estendi l'app Impostazioni in modo che le nuove interfacce utente rimangano in modo coerente con l'interfaccia utente Impostazioni esistente.
Ecco un riepilogo dei miglioramenti:
- Modifica del comportamento dello divisore nel framework di preferenze della libreria di supporto. Il divisore è ora tracciati tra le categorie.
- Il tema ActionBar è stato modificato. La barra dell'azione ora utilizza il tema cromatico chiaro, con testo di contrasto.
- Nuovo layout di preferenza. Lo spazio per le icone rimane anche quando una preferenza non ha un'icona.
Nuovi widget:
- Un widget di intestazione per i dettagli sull'app. Mostra l'icona, l'etichetta e l'etichetta dell'app altre informazioni.
- Un pulsante di espansione in alcune pagine. La pagina può iniziare come compressa e nasconderla meno elementi importanti finché l'utente non fa clic sul pulsante di espansione.
- UI del selettore di app predefinito:
- L'interfaccia utente per la scelta del browser predefinito, dell'app predefinita per smartphone e così via.
- In precedenza era una finestra di dialogo, ora è un'interfaccia utente a schermo intero basata su pulsanti di opzione.
- Un "MasterSwitch" la preferenza di stile. Si tratta di una preferenza che prevede target. Il target sinistro porta a un sottoinsieme o a un intent. Il target giusto è un pulsante di attivazione/disattivazione, che consente di attivare e disattivare l'intera pagina.
Esempi e fonte
- Comportamento divisore
- Tutte le pagine delle Impostazioni sono state modificate in modo da 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 di ActionBar
- Tutte le pagine delle Impostazioni sono state modificate per utilizzare il nuovo tema ActionBar.
- Il tema è definito in Theme.DeviceDefault.Settings
- Nuovo layout per le preferenze
- Molte pagine delle Impostazioni ora utilizzano il nuovo layout delle preferenze.
- Puoi trovare il codice in:
packages/apps/Settings/res/values/styles_preference.xml
- Widget intestazione dell'app
- Nella maggior parte delle pagine delle informazioni sull'app nelle Impostazioni viene già implementata la nuova intestazione dell'app.
- Esempi e codici sono disponibili all'indirizzo:
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Pulsante Espandi
- Esempi e codici sono disponibili all'indirizzo:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Nota: questo componente deve essere utilizzato insieme a Frammento Dashboard. Scopri di più su DashboardFragment in Updated Information Architecture (Architettura delle informazioni aggiornata).
- Esempi e codici sono disponibili all'indirizzo:
- Selettore di 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, ognuna delle quali implementa un selettore per intenti diversi.
- Puoi trovare il codice per la classe base in:
- Preferenza di stile MasterSwitch
- Il codice è in:
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 è l'interruttore principale Wi-Fi. Puoi trovare un esempio all'indirizzo:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Il codice è in:
Implementazione
I produttori di dispositivi possono iniziare a utilizzare subito tutti i nuovi componenti. Se gli OEM decidono di implementare un nuovo "MasterSwitch" preferenza di stile o app predefinita selettore, devono seguire gli esempi in questo documento e i file di riferimento (Javadoc) scritto con ogni componente per maggiori dettagli.
Personalizzare il menu Impostazioni
- Comportamento dello divisore. Per cambiare la modalità di disegno dei divisori, aggiorna lo stile dei separatori Impostazioni e
modifica il valore di:
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Colore del tema ActionBar. Le attività devono utilizzare
Theme.DeviceDefault.Settings
come tema oppure crea un tema personalizzato utilizzandoTheme.DeviceDefault.Settings
come elemento principale. - Widget intestazione dell'app. Utilizza i setter in AppHeaderController per personalizzare ogni campo e chiamata
build()
una volta impostati tutti i campi. - Pulsante Espandi:
- Per disabilitare completamente la funzionalità, sostituisci il costruttore per Progressivamente rivelatoreMixin e l'impostazione di keepExpanded su true.
- Per personalizzare il numero di elementi da mostrare all'inizio, chiama il metodo
ProgressiveDisclosureMixin.setTileLimit()
metodo durante il frammento MetodoonAttach(Context)
.