Motifs et composants

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 .)

  • 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.
  • 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

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 utilisant Theme.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éthode onAttach(Context) du fragment.