Dans Android 8.0, le menu Paramètres contient plusieurs composants et widgets qui couvrent les utilisations courantes. Les fabricants d'appareils et les développeurs sont encouragés à utiliser les composants communs lors de l'extension de l'application Paramètres afin que les nouvelles interfaces utilisateur restent cohérentes avec l'interface utilisateur Paramètres existante.
Voici un résumé des améliorations :
- Changement de comportement du diviseur dans le cadre de préférences de la bibliothèque de support. Un séparateur est désormais dessiné entre les catégories.
- Changement de thème ActionBar. L'ActionBar utilise désormais un thème de couleur claire, avec un texte de couleur d'accentuation.
- Nouvelle disposition des préférences. L'espace pour les icônes reste même lorsqu'une préférence n'a pas d'icône.
Nouveaux widgets :
- Un widget d'en-tête pour les détails de l'application. Affiche l'icône de l'application, l'étiquette de l'application et d'autres informations.
- Un bouton développer sur certaines pages. La page peut démarrer 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'application par défaut :
- L'interface utilisateur permettant de choisir le navigateur par défaut, l'application téléphonique par défaut, etc.
- Anciennement une boîte de dialogue, il s'agit désormais d'une interface utilisateur basée sur des boutons radio en plein écran.
- Une préférence de style "MasterSwitch". Il s'agit d'une préférence avec deux cibles de clic. La cible gauche mène à un fragment ou à une intention de sous-ensemble. La cible droite est un interrupteur à bascule, contrôlant l'activation/la désactivation de la page entière.
Exemples et source
- Comportement du diviseur
- Toutes les pages dans Paramètres sont modifiées pour utiliser le nouveau comportement de séparation.
- Le comportement du diviseur est défini comme un ThemeOverlay dans :
packages/apps/Settings/res/values/styles_preference.xml
- Changement de thème ActionBar
- Toutes les pages dans Paramètres sont modifiées pour utiliser le nouveau thème ActionBar.
- Le thème est défini dans Theme.DeviceDefault.Settings
- Nouvelle disposition des préférences
- De nombreuses pages dans Paramètres utilisent désormais la nouvelle présentation des préférences.
- Vous pouvez trouver 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 l'application dans Paramètres implémentent déjà le nouvel en-tête d'application.
- Des exemples et du code peuvent être trouvés à l'adresse :
packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
- Bouton Développer
- Des exemples et du code peuvent être trouvés à l'adresse :
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
Remarque : Ce composant doit être utilisé avec DashboardFragment. (Voir plus de détails sur DashboardFragment dans Updated Information Architecture .)
- Des exemples et du code peuvent être trouvés à l'adresse :
- Sélecteur d'applications par défaut
- Vous pouvez trouver 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 pouvez trouver le code de la classe de base dans :
- Préférence de style MasterSwitch
- Le code se trouve sur :
https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
- Un exemple de cas d’utilisation est le commutateur principal Wi-Fi. Vous pouvez trouver un exemple à l'adresse :
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Le code se trouve sur :
Mise en œuvre
Les fabricants d’appareils peuvent commencer à utiliser tous les nouveaux composants prêts à l’emploi. Si les OEM décident d'implémenter une nouvelle préférence de style « MasterSwitch » ou un nouveau 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 plus de détails.
Personnalisation
- Comportement du diviseur. Pour modifier la façon dont les séparateurs sont dessinés, 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 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 que tous les champs sont 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.