Modèles et composants

Dans Android 8.0, le menu "Paramètres" comporte plusieurs composants et widgets qui couvrent les utilisations courantes. Les fabricants et développeurs d'appareils sont encouragés à utiliser les composants courants lorsqu'ils étendent l'application Paramètres afin que les nouvelles interfaces utilisateur restent cohérentes avec l'UI des paramètres existante.

Voici un récapitulatif des améliorations apportées:

  • Modification du comportement du séparateur dans le framework de préférences de la bibliothèque Support. Un séparateur est maintenant dessiné entre les catégories.
  • Modification du thème de la barre d'action. ActionBar utilise désormais un thème de couleurs claires avec du texte avec des couleurs d'accentuation.
  • Nouvelle disposition des préférences. L'espace réservé aux icônes reste inchangé même lorsqu'une préférence n'a pas d'icône.

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'expansion sur certaines pages La page peut commencer comme réduite et masquer les éléments moins importants jusqu'à ce que l'utilisateur clique sur le bouton "Développer".
  • UI du sélecteur d'applications par défaut :
    • UI permettant de choisir le navigateur par défaut, l'application de téléphone par défaut, etc.
    • Cette interface utilisateur, qui était autrefois une boîte de dialogue, est désormais basée sur des cases d'option en plein écran.
  • 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-paramètre. La cible de droite est un bouton bascule qui contrôle l'activation et la désactivation de l'ensemble de la page.

Exemples et source

  • Comportement du séparateur
    • Toutes les pages des paramètres ont été modifiées pour utiliser le nouveau comportement du séparateur.
    • Le comportement du séparateur est défini en tant que ThemeOverlay dans:
      packages/apps/Settings/res/values/styles_preference.xml
  • Modification du thème de la barre d'action
    • Toutes les pages des paramètres ont été 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 des paramètres utilisent désormais la nouvelle disposition 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 "Paramètres" implémentent déjà le nouvel en-tête "Application".
    • Des exemples et le code sont disponibles ici:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Bouton "Développer"
    • Des exemples et le code sont disponibles ici:
      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 la page Architecture de l'information mise à jour.)

  • Outil de sélection d'applications 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 différents intents.
  • Préférence de style MasterSwitch
    • Le code se trouve à l'emplacement suivant : 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 Wi-Fi principal. Vous trouverez un exemple à l'adresse packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java.

Implémentation

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 sélecteur d'application 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é, modifiez le style des séparateurs de paramètres et modifiez la valeur des éléments suivants :
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Couleur du thème de la barre d'action. 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 de l'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 ProgressivePublicationMixin et définissez keepExpanded sur "true".
    • Pour personnaliser le nombre d'éléments à afficher initialement, appelez la méthode ProgressiveDisclosureMixin.setTileLimit() lors de l'exécution de la méthode onAttach(Context) du fragment.