Dans Android 8.0, le menu "Paramètres" comporte plusieurs composants et widgets qui couvrent les utilisations courantes. Les fabricants et les développeurs d'appareils sont encouragés à utiliser les composants communs lorsqu'ils étendent l'application Paramètres. Ainsi, les nouvelles interfaces utilisateur restent cohérentes avec l'interface utilisateur des paramètres existante.
Voici un résumé des améliorations :
- Modification du comportement des séparateurs dans le framework de préférences de la bibliothèque d'assistance. Un séparateur est désormais tracé entre les catégories.
- Changement de thème de l'ActionBar. L'ActionBar utilise désormais un thème de couleur claire, avec du texte de couleur d'accentuation.
- Nouvelle mise en page des préférences. L'espace réservé aux icônes reste même si une préférence n'en a pas.
Nouveaux widgets :
- Widget d'en-tête pour les détails de l'application. Affiche l'icône et le libellé de l'application, ainsi que d'autres informations.
- Un bouton "Développer" sur certaines pages. La page peut commencer par être réduite et masquer les éléments moins importants jusqu'à ce que l'utilisateur clique sur le bouton "Développer".
- Interface utilisateur du sélecteur d'applications par défaut :
- Interface utilisateur permettant de choisir le navigateur par défaut, l'application de téléphone par défaut, etc.
- Auparavant une boîte de dialogue, il s'agit désormais d'une interface utilisateur plein écran basée sur des boutons radio.
- Préférence de style "MasterSwitch". Il s'agit d'une préférence avec deux cibles de clic. La cible de gauche mène à un fragment ou un intent de sous-ensemble. La cible de droite est un bouton bascule qui permet d'activer ou de désactiver la fonctionnalité pour l'ensemble de la page.
Exemples et source
- Comportement des séparateurs
- Toutes les pages des paramètres sont modifiées pour utiliser le nouveau comportement des séparateurs.
- Le comportement du séparateur est défini comme un ThemeOverlay dans :
packages/apps/Settings/res/values/styles_preference.xml
- Changement de thème de l'ActionBar
- Toutes les pages des paramètres sont modifiées pour utiliser le nouveau thème ActionBar.
- Le thème est défini dans Theme.DeviceDefault.Settings
- Nouvelle mise en page des préférences
- De nombreuses pages de paramètres utilisent désormais la nouvelle mise en page des préférences.
- Vous trouverez le code dans :
packages/apps/Settings/res/values/styles_preference.xml
- Widget d'en-tête d'application
- La plupart des pages d'informations sur les applications dans les paramètres implémentent déjà le nouvel en-tête d'application.
- Vous trouverez des exemples et du code sur les pages suivantes :
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Bouton Développer
- Vous trouverez des exemples et du code sur les pages suivantes :
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Remarque : Ce composant doit être utilisé avec DashboardFragment. (Pour en savoir plus sur DashboardFragment, consultez Architecture de l'information mise à jour.)
- Vous trouverez des exemples et du code sur les pages suivantes :
- Sélecteur d'appli par défaut
- Vous trouverez le code de la classe de base dans :
packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
- Il existe plusieurs sous-classes de DefaultAppPickerFragment, chacune implémentant un sélecteur pour une intention différente.
- Vous trouverez le code de la classe de base dans :
- Préférence de style MasterSwitch
- Le code se trouve à l'adresse suivante :
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Le basculement vers le Wi-Fi comme connexion principale est un exemple de cas d'utilisation. Vous trouverez un exemple à l'adresse suivante :
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Le code se trouve à l'adresse suivante :
Implémentation
Les fabricants d'appareils peuvent commencer à utiliser tous les nouveaux composants immédiatement. Si les OEM décident d'implémenter une nouvelle préférence de style "MasterSwitch" ou un sélecteur d'applications par défaut, ils doivent suivre les exemples de ce document et les fichiers de référence (Javadoc) écrits avec chaque composant pour en savoir plus.
Personnaliser le menu des paramètres
- Comportement du séparateur. Pour modifier la façon dont le séparateur est dessiné, mettez à jour le style des séparateurs de paramètres et modifiez la valeur des éléments suivants :
allowDividerAbove
allowDividerBelow
allowDividerAfterLastItem
- Couleur du thème de l'ActionBar. Les activités doivent utiliser
Theme.DeviceDefault.Settings
comme thème ou créer un thème personnalisé en utilisantTheme.DeviceDefault.Settings
comme parent. - Widget d'en-tête d'application. Utilisez des setters dans AppHeaderController pour personnaliser chaque champ et appelez
build()
une fois tous les champs définis. - Bouton Développer :
- Pour désactiver complètement la fonctionnalité, remplacez le constructeur de ProgressiveDisclosureMixin et définissez keepExpanded sur "true".
- Pour personnaliser le nombre d'éléments à afficher initialement, appelez la méthode
ProgressiveDisclosureMixin.setTileLimit()
pendant la méthodeonAttach(Context)
du fragment.