Modèles et composants

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

Voici un résumé des améliorations :

  • Modification du comportement du séparateur dans le framework de préférences de la bibliothèque d'assistance. Le séparateur est désormais dessiné entre les catégories.
  • Modification du thème de l'ActionBar. L'ActionBar utilise désormais un thème de couleur claire, avec du texte en couleur d'accentuation.
  • Nouvelle mise en page des préférences. L'espace réservé aux icônes est conservé même lorsqu'une préférence n'en comporte pas.

Nouveaux widgets :

  • Widget d'en-tête pour les informations sur l'application. Affiche l'icône, le libellé et d'autres informations sur l'application.
  • Bouton "Développer" sur certaines pages. La page peut commencer à ê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'application par défaut :
    • Interface utilisateur permettant de choisir le navigateur par défaut, l'application Téléphone par défaut, etc.
    • Auparavant une boîte de dialogue, il s'agit désormais d'une interface utilisateur en 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-paramètre. La cible de droite est un bouton d'activation/de désactivation qui contrôle l'activation/la désactivation de l'ensemble de la page.

Exemples et source

  • Comportement du séparateur
    • Toutes les pages de Paramètres sont modifiées pour utiliser le nouveau comportement du séparateur.
    • Le comportement du séparateur est défini comme un ThemeOverlay dans :
      packages/apps/Settings/res/values/styles_preference.xml
  • Modification du thème de l'ActionBar
    • Toutes les pages de Paramètres sont modifiées pour utiliser le nouveau thème de l'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 de l'application
    • La plupart des pages d'informations sur les applications dans Paramètres implémentent déjà le nouvel en-tête de l'application.
    • Vous trouverez des exemples et du code sur la page suivante :
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Bouton "Développer"
    • Vous trouverez des exemples et du code sur la page suivante :
      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 section Architecture d'informations mise à jour.)

  • Sélecteur d'application 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 un intent différent.
  • MasterSwitch préférence de style
    • 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 commutateur principal Wi-Fi est un exemple de cas d'utilisation. Vous trouverez un exemple à l'adresse suivante : 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 "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 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 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.