Cette page fournit des informations sur les anciennes versions des packages de la bibliothèque Support. Pour obtenir les dernières versions de la bibliothèque Support, consultez la section Révisions récentes de la bibliothèque Support.
Révision 26.0.0 bêta 2
(juin 2017)
Veuillez noter que la version 26.0.0-beta2 est une version préliminaire. Sa surface d'API est susceptible d'être modifiée et n'inclut pas nécessairement les fonctionnalités ou les corrections de bugs des dernières versions stables de la bibliothèque Support.
Important:Les bibliothèques Support sont désormais disponibles via le dépôt Maven de Google. Vous n'avez pas besoin de télécharger le dépôt d'assistance à partir de SDK Manager. Pour en savoir plus, consultez Configuration de la bibliothèque Support.
Nouvelles API
- Nouvelle classe
JobIntentService
, pour aider les développeurs à planifier des tâches conformément aux nouvelles limites d'exécution en arrière-plan d'Android O.
Différences d'API
Correction de bugs
- La suppression du SDK Android O entraîne une perte d'italique dans TextViews
- Exception de pointeur nul lors de la connexion à MediaBrowserServiceCompat
- TextInputLayout doit définir des optimisations sur onProvideAutofillStructure().
- Débordement de pile lors de l'utilisation du redimensionnement automatique de TextView sur O
Révision 26.0.0 bêta 1
(mai 2017)
Veuillez noter que la version 26.0.0-beta1 est une version préliminaire. Sa surface d'API est susceptible d'être modifiée et n'inclut pas nécessairement les fonctionnalités ou les corrections de bugs des dernières versions stables de la bibliothèque Support.
Important:Les bibliothèques Support sont désormais disponibles via le dépôt Maven de Google. Vous n'avez pas besoin de télécharger le dépôt d'assistance à partir de SDK Manager. Pour en savoir plus, consultez Configuration de la bibliothèque Support.
Changements significatifs
- Suppression de
FragmentActivity.setSupportMediaController()
etFragmentActivity.getSupportMediaController()
. Veuillez utiliser les nouvelles méthodes statiquesMediaControllerCompat.setMediaController()
etMediaControllerCompat.getMediaController()
. BottomNavigationView
appelle désormaisonNavigationItemReselected()
lorsqu'un élément déjà sélectionné est sélectionné au lieu d'appeleronNavigationItemSelected()
.- Toutes les instances de la méthode
findViewById()
renvoient désormais<T extends View> T
au lieu deView
. Cette modification a les conséquences suivantes :- Par conséquent, le code existant peut désormais comporter un type renvoyé ambigu, par exemple si
someMethod(View)
etsomeMethod(TextView)
acceptent le résultat d'un appel àfindViewById()
. - Lorsque vous utilisez le langage source Java 8, cela nécessite une conversion explicite en
View
lorsque le type renvoyé est sans contrainte (par exemple,assertNotNull(findViewById(...)).someViewMethod())
). - Le type renvoyé doit être mis à jour pour les remplacements de méthodes
findViewById()
non finales (par exemple,Activity.findViewById()
).
- Par conséquent, le code existant peut désormais comporter un type renvoyé ambigu, par exemple si
Nouvelles API
-
FragmentManager
etFragment
disposent d'une méthodeisStateSaved()
pour permettre de demander si une transaction est autorisée ou non sans perte d'état. Cela est particulièrement utile à vérifier lors de la gestion d'un événementonClick()
avant d'exécuter une transaction. - Le mouvement de trajectoire est pris en charge dans
AnimatedVectorDrawableCompat
. Le mouvement de tracé permet à un animateur d'objet de modifier deux propriétés en même temps en fonction d'un seul tracé. Le tracé est spécifié en tant queandroid:pathData
dans le code XML de l'animation. - Animation basée sur la physique :
- Ajout d'un
FlingAnimation
qui prend en charge l'animation avec une vitesse initiale et ralentit de manière progressive. - Les sous-classes de
DynamicAnimation
acceptent l'animation de propriété personnalisée pour tout objet. SpringAnimation
etFlingAnimation
peuvent désormais animer une valeur flottante sans qu'il soit nécessaire de lui associer unView
ou unObject
.
Pour en savoir plus, consultez les pages d'aperçu des animations de rétroaction et des animations de survol.
- Ajout d'un
-
Polices XML acceptées :
-
ResourcesCompat.getFont
permet de charger des ressources de police, y compris un fichier XML de famille de polices qui peut être utilisé avecTextView.setTypeface()
. - Lorsque vous utilisez AppCompat, TextView permet de spécifier une ressource de police ou un fichier XML de famille de polices via l'attribut XML
android:fontFamily
. - Utilisez XML font-family pour créer des familles de polices avec des variations de style et d'épaisseur. (Si vous utilisez les classes de la bibliothèque Support pour ce faire, utilisez les attributs
app:
ainsi que les attributsandroid:
.)
-
- Polices téléchargeables:
- Nouveau
FontsContractCompat
qui vous permet de demander des polices à un fournisseur de polices au lieu de les regrouper dans votre application. - Les polices peuvent également être demandées au format XML et utilisées dans les mises en page.
- Nouveau
-
Bibliothèque de compatibilité
des emoji :
-
EmojiCompat
peut traiter unCharSequence
donné et ajouterEmojiSpans
. -
EmojiTextView
et d'autres widgets pour afficher des emoji. -
FontRequestEmojiCompatConfig
pour demander une police emoji à un fournisseur de polices.
-
-
Ajustement automatique de TextView :
- Nouvelles méthodes dans
TextViewCompat
et attributs XML pour contrôler le dimensionnement automatique dansTextView
.
- Nouvelles méthodes dans
- Commandes de lecture YouTube "en moins de clics" avec recherche automatique:
-
- Nouveau
PlaybackTransportRowPresenter
qui affiche les commandes de lecture avec une barre de recherche. - Nouveau
PlaybackTransportControlGlue
qui fonctionne avecPlaybackTransportRowPresenter
et prend en charge la recherche. - Nouvelle classe de base
PlaybackSeekDataProvider
permettant à l'application de fournir des vignettes de recherche àPlaybackTransportControlGlue
.
- Nouveau
- Preferences Data Store:
-
PreferenceDataStore
vous permet désormais d'implémenter votre propre stockage de préférences, défini à l'aide de nouvelles méthodes dansPreference
etPreferenceManager
.
-
Problèmes connus
- L'intégration des polices téléchargeables et des emoji avec les services Google Play ne fonctionne qu'avec la version 11 ou ultérieure des services Google Play, actuellement disponible via le programme bêta des services Google Play.
Correction de bugs
-
L'API
MediaBrowserCompat.search()
ne fonctionne pas (problème AOSP 262170) -
ViewCompat.postInvalidateOnAnimation()
génère une exception (problème AOSP 80146) -
onActivityCreated()
appelé pour les fragments dans l'activité détruite -
RecyclerView.isComputingLayout()
doit renvoyer la valeur "true" lors du préchargement. -
Lorsqu'une transition
Fade
est interrompue et inversée,View
lance l'animation depuis le début. (Correctif transféré à partir du framework Android.) -
Transition.Fade
ignore la valeur alpha initiale deView
(problème AOSP 221820)
Révision 26.0.0 Alpha 1
(mars 2017)
Veuillez noter que la version 26.0.0-alpha1 est une version préliminaire. Sa surface d'API est susceptible d'être modifiée et n'inclut pas nécessairement les fonctionnalités ou les corrections de bugs des dernières versions stables de la bibliothèque Support.
Changements significatifs
Remarque:La version minimale du SDK est passée à 14. Par conséquent, de nombreuses API qui n'existaient que pour une compatibilité avec une version inférieure à 14 sont devenues obsolètes. Les clients de ces API doivent migrer vers leurs équivalents de framework, comme indiqué sur la page de référence de chaque API obsolète.
- Le module support-percent est obsolète. Les clients de ce module doivent migrer vers le nouveau widget ConstraintLayout, fourni en tant qu'artefact distinct dans SDK Manager.
- Le module support-fragment n'a plus de dépendance sur le module support-media-compat.
Nouvelles API
De nombreuses nouvelles classes, méthodes et constantes ont été ajoutées pour assurer la compatibilité ascendante des API de plate-forme ajoutées dans O Preview.
IME_FLAG_NO_PERSONALIZED_LEARNING
: les IME peuvent écouter les indicateurs "aucun apprentissage" pour les applications en mode privé, telles que les navigateurs. Cette fonctionnalité aide les IME à déterminer si une application est en mode privé, afin qu'ils puissent désactiver leur fonctionnalité d'apprentissage ou adaptative lorsque l'application est dans ce mode.
Pour obtenir la liste complète des modifications apportées aux API entre les versions 25.2.0 et 26.0.0-alpha1, consultez le rapport sur les différences des API de la bibliothèque Support.
Correction de bugs
- Dans certains cas, une simple animation
AutoTransition
peut être interrompue par des "sauts". (problème AOSP 221816).
Révision 25.4.0
(juin 2017)
Important:Les bibliothèques Support sont désormais disponibles via le dépôt Maven de Google. Vous n'avez pas besoin de télécharger le dépôt d'assistance à partir de SDK Manager. Pour en savoir plus, consultez Configuration de la bibliothèque Support.
Changements significatifs
-
executePendingTransactions()
,commitNow()
,popBackStackImmediate()
et les appels de transaction similaires ne sont pas autorisés lors du changement d'état deFragmentManager
. L'exécution par réentrant des transactions est non sécurisée, etFragmentManager
applique désormais cette méthode lors des changements d'état. - Parallèlement à cette version de la bibliothèque Support, nous publions la version 1.0.2 de multidex. Cette version inclut les modifications importantes suivantes :
- Autorise le multidexing de l'APK d'instrumentation.
- Abandon de MultiDexTestRunner (utiliser AndroidJUnitRunner à la place).
- Offre une meilleure protection contre les erreurs de gestion de l'extraction d'archives de l'application.
- Correction d'un bug qui pouvait entraîner l'abandon de fichiers temporaires.
- Fournit une installation plus rapide lorsqu'elle est effectuée dans un processus simultané.
- Corrige un bug d'installation sur les API 19 et 20.
API nouvelles et modifiées
Le morphologie et l'interpolation de tracé sont pris en charge dans AnimatedVectorDrawableCompat
. Le morphing de tracé permet de passer d'un tracé (spécifié android:valueFrom
) à un autre (android:valueTo
) afin de fournir des effets visuels complexes et attrayants. L'interpolation de chemin permet de spécifier les interpolateurs de AnimatedVectorDrawableCompat
en tant que chemins (spécifiés en tant que android:pathData
dans le code XML de l'interpolateur).
Différences d'API
Problèmes résolus
- Exception de pointeur nul lors de la connexion à MediaBrowserServiceCompat
- L'API MediaBrowserCompat.search() ne fonctionne pas (problème AOSP n° 262170)
- Rappels BrowseFragment onItemClicked interrompus dans la version 25.3.0
- NullPointerException lors du défilement vers le haut et vers le bas dans VerticalGridView dans la version 25.3.1
- ClassCastException dans SimpleArrayMap.allocArrays()
Révision 25.3.1
(mars 2017)
Problèmes résolus
SwitchCompat
nécessite le SDK version 14 ou ultérieure. (problème AOSP 251302).- L'animation basée sur la physique
updateListener
ignore la première image. - L'animation du libellé
BottomNavigationView
ne fonctionne pas.
Révision 25.3.0
(mars 2017)
Changements significatifs
Les métadonnées des versions de la bibliothèque Support sont automatiquement ajoutées à AndroidManifest.xml
lors de la compilation à partir de Gradle, ce qui simplifie le suivi des versions dans les builds publics. Par exemple :
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
Abandons
Un certain nombre de méthodes et de classes ont été abandonnées dans cette version. Ces API obsolètes seront supprimées dans une prochaine version, et les développeurs devront les supprimer. Pour découvrir comment ne plus utiliser une API spécifique, consultez sa documentation.
ExifInterface
- La méthode booléenne
getLatLong(float[])
est obsolète. Utilisez plutôt la nouvelle méthodegetLatLong()
, qui n'accepte aucun argument et renvoiedouble[]
. mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
est obsolète. Utilisez plutôt la nouvelle méthodesetErrorMessage(int, CharSequence)
, à laquelle est transmis un code d'erreur et une description facultative.EXTRA_SUGGESTION_KEYWORDS
est obsolète. Utilisez plutôt la fonctionnalité de rechercheMediaBrowserCompat
.v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount()
a été renomméLinearLayoutManager.getInitialPrefetchItemCount()
. L'ancien nom est toujours accepté, mais il sera supprimé dans une prochaine version.
API nouvelles et modifiées
appcompat-v7
- La nouvelle méthode
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
simplifie la désactivation de l'animation de l'icône d'activation du panneau de navigation. customtabs
- Prise en charge des canaux de messagerie. Pour en savoir plus, consultez la documentation de référence sur
CustomTabsService.requestPostMessageChannel()
etCustomTabsService.postMessage()
. dynamic-animation
- Nouvelle bibliothèque d'animations basées sur la physique qui fournit un ensemble d'API pour créer des animations qui réagissent de manière dynamique à l'entrée utilisateur.
leanback-v17
- Prise en charge des arrière-plans parallaxes. Pour en savoir plus, consultez la documentation de référence sur
Parallax
. - Ajout du widget
TimePicker
pour choisir des heures sur une interface TV. mediacompat
- Fonctionnalité de recherche ajoutée. Pour en savoir plus, consultez la documentation de référence sur
MediaBrowserCompat.search()
etMediaBrowserServiceCompat.onSearch()
. - Prise en charge des modes brassage et répétition. Pour en savoir plus, consultez la documentation de référence sur
MediaSessionCompat.setRepeatMode()
etsetShuffleModeEnabled()
.
Problèmes résolus
StaggeredGridLayoutManager
génèreIllegalArgumentException
(problème AOSP 230295)- Le préchargement de
RecyclerView
ne gère pas correctement unRecyclerView
associé, mais qui ne s'affiche pas à l'écran LinearLayout
non reconnu par Robolectric- Lorsque
Activity
est détruit,onActivityCreated()
est appelé de manière incorrecte pour ses fragments - Le constructeur
AppCompatImageView
entraîneArrayIndexOutOfBoundsException
- Mauvaises performances de l'interface utilisateur lors de la transition d'activités
Call.Details
Révision 25.2.0
(février 2017)
Changements importants
Problèmes résolus
- Cette version corrige un problème grave de MediaRouter : l'utilisation d'un appareil A2DP et des API de routage multimédia pouvait entraîner le blocage de l'appareil, nécessitant un redémarrage.
- La classe
FragmentManager.FragmentLifecycleCallbacks
est désormais statique.
Problèmes résolus
- L'affichage d'une présentation avec duplication d'écran entraîne la déconnexion de l'appareil du Wi-Fi
- Le bouton multimédia ne gérait pas correctement les applications multimédias qui ne s'étaient pas enregistrées auprès de
setMediaButtonReceiver()
-
Erreur
VectorDrawable
concernant la ressource de chaîne (problème AOSP 232407) TextInputLayout
superpose l'indice et le texte si le texte est défini par XML (problème AOSP 230171)- Fuite de mémoire dans
MediaControllerCompat
(problème AOSP 231441) -
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
plante RecyclerView
plante lors du recyclage des supports de vue (problème AOSP 225762)getAllowGeneratedReplies()
affiche de manière incorrecte la valeur "false" pour les actions dans unWearableExtender
.
Révision 25.1.1
(janvier 2017)
Important:Il existe un bug connu dans la classe android.support.v7.media.MediaRouter
dans les révisions 25.1.1 et 25.1.0 de la bibliothèque Support. Si votre application utilise la version 7 de MediaRouter
, vous devez passer à la révision 25.2.0 de la bibliothèque Support, qui corrige ce bug.
Changements importants
-
Les transactions de fragment peuvent désormais être optimisées au sein des transactions et entre elles. L'optimisation des opérations de transaction de fragment peut éliminer les opérations d'annulation. Par exemple, supposons que deux transactions soient exécutées ensemble, la première qui ajoute un fragment A et l'autre qui remplace le fragment A par le fragment B. Dans ce cas, la première opération peut être annulée et seul le fragment B est ajouté. Par conséquent, il est possible que le fragment A ne passe pas par le cycle de vie de création/destruction.
Cette optimisation a un effet secondaire : les fragments peuvent entraîner des changements d'état dans l'ordre attendu. Par exemple, supposons qu'une transaction ajoute le fragment A, qu'une seconde ajoute le fragment B, puis qu'une troisième supprime le fragment A. Sans optimisation, le fragment B pourrait s'attendre à ce que le fragment A existera également pendant sa création, car le fragment A sera supprimé après l'ajout du fragment B. Avec l'optimisation, le fragment B ne peut pas être sûr que le fragment A existera pendant la création du fragment B, car la création et la destruction du fragment A peuvent être supprimées par l'optimisation.
Cette optimisation est désactivée par défaut. Pour activer l'optimisation, appelez
FragmentTransaction.setAllowOptimization(true)
. - Les fragments peuvent désormais différer leurs transitions et animations jusqu'à ce qu'ils soient prêts, à l'aide de
Fragment.postponeEnterTransition()
etFragment.startPostponedEnterTransition()
. Cette API est semblable àActivity.postponeEnterTransition()
etActivity.startPostponedEnterTransition()
utilisées avec les transitions d'activités.
Problèmes résolus
-
Échec de
MediaSessionCompatTest
avecIllegalArgumentException
-
DetailsFragment.installTitleView()
n'est pas appelé dans la version 25.1.0 - La transaction de fragment conserve la vue fantôme en quittant (problème AOSP 230679)
-
BottomNavigationView
nécessite un espacement entre l'icône de l'élément et le texte (problème AOSP 230653) - Les écouteurs sélectionnés ne sont pas inclus dans les nouveaux éléments
PlaybackFragment
etPlaybackSupportFragment
. -
Le ciblage de
TextInputLayout
ne change pas correctement dans l'émulateur à partir de la version 25.1.0 de la bibliothèque Support (problème AOSP 230461) - Impossible de remplacer le menu d'un élément
BottomNavigationView
(problème AOSP 230343) -
RecyclerView
avecStaggeredGridLayoutManager
plantages avec des éléments complets (problème AOSP 230295) - Plantage dans
MediaSessionCompat
lors de l'utilisation desetCallback(null)
-
PlaybackGlueHostOld
etPlaybackSupportGlueHostOld
n'envoient pas de notifications aux rappels lorsque la ligne de lecture change. -
PlaybackOverlayFragment
exemple de/test
ne peut pas démarrer la lecture -
Échec de
RecyclerViewFocusRecoveryTest
avec l'API 15 - La ligne "Captures d'écran" est sélectionnée en haut de l'écran
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
plantages sur l'API 15 -
setActions()
dansonSubactionClicked()
ne fonctionne pas -
RecyclerView
plante lors du recyclage de certains conteneurs de vue
Révision 25.1.0
(décembre 2016)
Important:Il existe un bug connu dans la classe android.support.v7.media.MediaRouter
dans les révisions 25.1.1 et 25.1.0 de la bibliothèque Support. Si votre application utilise la version 7 de MediaRouter
, vous devez passer à la révision 25.2.0 de la bibliothèque Support, qui corrige ce bug.
Changements importants
- Les clients de widgets
RecyclerView
imbriqués (par exemple, une liste à défilement vertical de listes à défilement horizontal) peuvent améliorer considérablement les performances en indiquant aux gestionnaires de mise en page des widgetsRecyclerView
internes le nombre d'éléments à préparer avant qu'ils ne soient défilés à l'écran. AppelezLinearLayoutManager.setInitialPrefetchItemCount(N)
, où N correspond au nombre de vues visibles par élément interne. Par exemple, si vos listes horizontales internes affichent au moins trois vues d'éléments et demi à la fois, vous pouvez améliorer les performances en appelantLinearLayoutManager.setInitialPrefetchItemCount(4)
. Cela permet àRecyclerView
de créer toutes les vues pertinentes de manière anticipée, tandis que laRecyclerView
externe effectue le défilement, ce qui réduit considérablement le nombre de stuttering lors des défilements. - Abandon de
FragmentActivity.setSupportMediaController()
etFragmentActivity.getSupportMediaController()
. Veuillez utiliser les nouvelles méthodes statiquesMediaControllerCompat.setMediaController()
etMediaControllerCompat.getMediaController()
. - Lorsqu'un client spécifie une teinte de widget via la teinte Appcompat (par exemple,
appcompat:buttonTint
), il est responsable de fournir tous les états nécessaires (tels que "désactivé", "touché", etc.). Ceci est cohérent avec la façon dont les teintes des widgets sont spécifiées lors de l'utilisation de la teinte du framework.
API nouvelles et modifiées
- Ajout de la bibliothèque de support ExifInterface. Cette bibliothèque dissocie la prise en charge de la lecture des informations Exif à partir de fichiers JPEG et bruts, et la définition des informations Exif sur les fichiers image JPEG.
Snackbar
a été refactorisé pour permettre aux applications d'afficher du contenu personnalisé.BaseTransientBottomBar
est la nouvelle classe de base qui expose le comportement général de glissement et d'animation.- Ajout d'un nouveau package leanback.media contenant des classes d'assistance pour intégrer des lecteurs multimédias dans les applications Android TV.
- Ajout de
SeekBarPreference
avec une mise en page et des attributs personnalisables à la bibliothèque Support des préférences v7. - Ajout de la classe
ArraySet
à la bibliothèque Support de la version 4. Cette classe correspond à la classeArraySet
du framework introduite avec le niveau d'API 23. RecyclerView
Améliorations apportées au préchargement des éléments RecyclerView :- Le préchargement
RecyclerView
imbriqué permet le préchargement du contenu à partir d'unRecyclerView
dans un autreRecyclerView
défilant, avec une API pour contrôler le niveau de préchargement effectué : - Ajout d'API pour les objets
LayoutManager
personnalisés à implémenter afin d'activer le préchargement lors des défilements et des glissements d'un geste vif - Améliorations apportées au préchargement afin d'effectuer uniquement le plus de tâches de création/liaison possible entre les frames
- Le préchargement
Problèmes résolus
- L'activation/la désactivation de la visibilité du mot de passe échoue aux tests d'accessibilité.
- Appcompat ne respecte pas
state_enabled
sur les appareils antérieurs à la version L. - Ajout d'un mécanisme de récupération de la sélection à
RecyclerView
. Cela a également permis de corriger la prise en charge des fragments de préférences de sélection brisée lors de l'utilisation du pavé directionnel, comme sur les appareils Android TV. - Leanback: browseFragment plante avec les en-têtes désactivés et un adaptateur vide.
- Appcompat:
AlertDialog
est trop large. InputContentInfoCompat
appellerequestPermission()
lorsqu'il doit appelerreleasePermission()
.MediaBrowserCompat
plantages.- CoordinatorLayout mesure/dispose des vues lorsque la visibilité est définie sur
GONE
. - Impossible de teinter
AnimatedVectorDrawableCompat
au niveau d'API inférieur à 24 - La bibliothèque Leanback déclenche de fausses erreurs lint
- La bibliothèque Palette provoque des échecs de test à chaque niveau d'API
RecyclerView
test ayant échoué sur LeanbackRecyclerView
plante lors du recyclage des supports de vue (problème AOSP 225762)Fragment.onDestroy()
non appelé pour le fragment dans la pile "Retour"- Le fond
CollapsingToolbarLayout
n'est pas dessiné lorsqu'il est réduit CoordinatorLayout.offsetChildByInset()
génèreIllegalArgumentException
- L'animation des éléments
RecyclerView
dissocie lesRecyclerView
internes et empêche les futurs préchargements - Les éléments
RecyclerView
associés ne peuvent pas être préchargés sous forme imbriquée - Les données de préchargement pour les éléments
RecyclerView
imbriqués sont supprimées lors de la première mise en page - Échec du préchargement de
RecyclerView
si deux événements de déplacement arrivent à la même position RecyclerView
devrait effectuer une mise en page spéculative pendant l'affichage de RenderThread- Les ressources de couleur configurées pour la nuit et converties en drawables ne sont pas toujours correctement supprimées du cache des ressources.
FloatingActionButton
: la définition programmatique de BackgroundTintList ne fonctionne pas correctement (problème AOSP 227428)TextInputLayout
: la police de caractères n'est pas définie pour ErrorView (problème AOSP 227803).TextInputLayout
revient toujours à une couleur d'erreur claire inférieure à l'API 23 (problème AOSP 221992).FloatingActionButton
s'affiche lorsqu'un utilisateur appuie sur le pointeur lorsqu'il quitte
La liste complète des corrections de bugs publiques est disponible sur l' outil de suivi des problèmes AOSP.
Abandons
Un certain nombre de méthodes et de classes ont été abandonnées dans cette version. Ces API obsolètes seront supprimées dans une prochaine version, et les développeurs devront cesser de les utiliser. Pour savoir comment ne plus utiliser une API spécifique, consultez sa documentation.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
Révision 25.0.1
(novembre 2016)
Problèmes résolus
- L'activation/la désactivation du mot de passe
TextInputLayout
est désormais désactivée par défaut pour éviter d'écraser inutilement les drawables finaux spécifiés par le développeur. Vous pouvez l'activer manuellement via l'attribut XMLpasswordToggleEnabled
. - Mise à jour des éléments
BottomNavigationView
, désormais sur une seule ligne afin de respecter les spécifications de Material. RecyclerView
plante lors du préchargement si le gestionnaire de mises en page est nul.- L'élévation de
BottomNavigationView
est désormais correctement définie. (problème AOSP 226182). BottomNavigationView
plante lors de l'ajout d'éléments de menu par programmation. (problème AOSP 225731).- Correction de
TextInputLayout
: drawables composés à gauche et à droite. (problème AOSP 225836). RecyclerView
plante lors du recyclage des conteneurs de vue. (problème AOSP 225762).- Grand écran: TalkBack énonce souvent le mot "null" dans les affichages en mode Écran partagé.
RecyclerView
: problèmes de rendu dans Android Studio. (problème AOSP 225753).BottomNavigationView
affiche toujours l'élément de menu sélectionné après queonNavigationItemSelected()
renvoie la valeur "false". (problème AOSP 225898).- TransmissionListener génère une erreur
NoSuchMethodError
. (problème AOSP 225647). TextInputEditText
n'affiche pas les indications en mode d'extraction IME. (problème AOSP 221880)
La liste complète des corrections de bugs publiques est disponible sur l' outil de suivi des problèmes AOSP.
Révision 25.0.0
(octobre 2016)
Changements significatifs
- Le constructeur
ContextCompat
a été protégé. Cette classe ne doit pas être instanciée publiquement, mais elle peut être étendue par les bibliothèques Support ciblant les niveaux d'API les plus récents. - Le constructeur
ActivityCompat
a été protégé. Cette classe ne doit pas être instanciée publiquement, mais elle peut être étendue par les bibliothèques Support ciblant les niveaux d'API les plus récents. getReferrer(Activity)
est désormais statique.-
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
a été supprimé. Toutes les implémentations client de cette méthode doivent être supprimées. -
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
a été supprimé. Les utilisations doivent être remplacées par la méthodefromMediaSession()
, qui est plus appropriée. -
Suppression de
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
. Les utilisations doivent être remplacées par la méthodeMediaSessionCompat.QueueItem#fromQueueItem
, qui est plus appropriée. -
android.support.v7.widget.Space
a été supprimé. Les utilisations doivent être remplacées parandroid.support.v4.widget.Space
.
Nouvelles API
-
La classe
android.support.design.widget.BottomNavigationView
implémente le modèle de navigation inférieure à partir de la spécification Material Design. - Le nouveau package
android.support.v13.view.inputmethod
inclut des classes permettant d'accéder aux fonctionnalitésandroid.view.inputmethod.InputConnection
introduites après le niveau d'API 13. -
La classe
android.v7.widget.RecyclerView.DividerItemDecoration
fournit une implémentation de base pour les séparateurs verticaux ou horizontaux entre les éléments. - Nouveaux styles décorés dans
android.support.v7.app.NotificationCompat
,DecoratedCustomViewStyle
etDecoratedMediaCustomViewStyle
, classes de miroir ajoutées à l'API 24 de la plate-forme.
Problèmes résolus
La liste complète des corrections de bugs publiques est disponible sur l' outil de suivi des problèmes AOSP.
Révision 24.2.1
Septembre 2016
Problèmes résolus :
FloatingActionButton
ne peut plus être ancré à des enfants indirects deCoordinatorLayout
. (problème AOSP 220250).- L'image dans
CollapsingToolbarLayout
ne s'adapte pas correctement àfitsSystemWindows=true
. (problème AOSP 220389). CoordinatorLayout
génère uneIndexOutOfBoundsException
lorsqueSnackbar
est affiché et ignoré. (problème AOSP 220762).TextInputLayout
ne parvient pas à résoudre la couleur du texte d'erreur. (problème AOSP 220305).BatchedCallback.onMoved()
appelleBatchedCallback.onInserted()
. (problème AOSP 220309).TextInputLayout
remplace le drawable composé de droite. (problème AOSP 220728).
La liste complète des corrections de bugs publiques est disponible sur l' outil de suivi des problèmes AOSP.
Révision 24.2.0
août 2016
La version 24.2.0 contient les modifications suivantes:
- Division de la bibliothèque Support v4
- Mises à jour de l'API
- Nouveaux comportements
- Abandons
- Corrections de bugs
Remarque:La version 24.2.0 supprime la compatibilité avec Android 2.2 (niveau d'API 8) et les versions antérieures. Les classes et les méthodes qui existent uniquement pour diffuser ces versions du système sont désormais marquées comme obsolètes et ne doivent plus être utilisées. Ces classes et méthodes obsolètes pourront être supprimées dans une prochaine version.
Fractionnement de la bibliothèque Support v4
Avec cette version, la bibliothèque Support v4 a été divisée en plusieurs modules plus petits:
-
support-compat
- Fournit des wrappers de compatibilité pour les nouvelles API de framework, telles que
Context.getDrawable()
etView.performAccessibilityAction()
. -
support-core-utils
-
Fournit un certain nombre de classes utilitaires, telles que
AsyncTaskLoader
etPermissionChecker
. -
support-core-ui
- Implémente divers composants liés à l'interface utilisateur, tels que
ViewPager
,NestedScrollView
etExploreByTouchHelper
. -
support-media-compat
- Rétroporte certaines parties du framework media, y compris
MediaBrowser
etMediaSession
. -
support-fragment
- Rétroportage du framework de fragment. Ce module dépend de
support-compat
,support-core-utils
,support-core-ui
etsupport-media-compat
.
Pour assurer la rétrocompatibilité, si vous répertoriez support-v4
dans votre script Gradle, votre APK inclura tous ces modules. Toutefois, pour réduire la taille du fichier APK, nous vous recommandons de n'indiquer que les modules spécifiques dont votre application a besoin.
Mises à jour de l'API
- Les clients qui utilisent des onglets personnalisés peuvent contrôler si les applis instantanées doivent s'ouvrir. (Notez que les applis instantanées ne sont pas encore disponibles pour tous les utilisateurs.) Pour activer ou désactiver les applis instantanées, appelez
CustomTabsIntent.Builder.setInstantAppsEnabled()
ou spécifiezEXTRA_ENABLE_INSTANT_APPS
. Par défaut, les onglets personnalisés activent les applis instantanées dès que cette fonctionnalité est disponible. TextInputLayout
est compatible avec le paramètre d'activation de la visibilité des mots de passe, qui est fourni par la spécification Material Design.- Le nouveau package
android.support.transition
rétroporte le framework Transitions aux niveaux d'API 14 et supérieurs. Pour en savoir plus, consultez la documentation de référence surandroid.support.transition
. - La bibliothèque Support des onglets personnalisés permet d'utiliser
RemoteViews
dans la barre d'outils secondaire. La méthodesetToolbarItem()
existante est désormais obsolète. AppCompatResources
permet de charger un objet<vector>
(à partir du niveau d'API 9) ou<animated-vector>
(au niveau d'API 11 ou supérieur) à partir d'un ID de ressource, à l'aide de la nouvelle méthodegetDrawable()
.CoordinatorLayout
permet désormais de définir des vues en encart et de spécifier que d'autres vues doivent esquiver ces vues. Cela permet aux applications de répliquer des modèles de comportement de la même manière queFloatingActionButton
s'écarte d'unSnackbar
, mais pour toute vue enfant arbitraire. Pour en savoir plus, consultez la documentation de référence surLayoutParams.insetEdge
etLayoutParams.dodgeInsetEdges
.- La nouvelle classe
DiffUtil
peut calculer la différence entre deux collections et envoyer une liste d'opérations de mise à jour pouvant être utilisées par unRecyclerView.Adapter
. -
RecyclerView.OnFlingListener
a été ajouté pour permettre un comportement personnalisé en réponse aux glissements d'un geste vif. La classeSnapHelper
fournit une implémentation spécifique pour l'ancrage des vues enfants, et la classeLinearSnapHelper
étend cette implémentation pour fournir un comportement d'ancrage aligné au centre semblable àViewPager
. - La bibliothèque d'onglets personnalisés permet désormais aux clients de demander l'interface utilisateur standard du navigateur, plutôt que l'interface utilisateur des onglets personnalisés, en appelant
CustomTabsIntent.setAlwaysUseBrowserUI()
. Ce comportement est utile lorsque le navigateur utilise par défaut l'interface utilisateur des onglets personnalisés, mais que l'utilisateur a exprimé une préférence pour l'interface utilisateur standard.
Changements de comportement
- Si vous utilisez la fonctionnalité jour/nuit de la bibliothèque Appcompat, le système recrée automatiquement votre activité chaque fois que le mode Jour/Nuit change (en raison de l'heure ou d'un appel à
AppCompatDelegate.setLocalNightMode()
). - Mise à jour de
Snackbar
, qui s'affiche désormais derrière la barre de navigation si celle-ci est translucide.
Bibliothèque MediaRouter
Les appareils Bluetooth ne sont plus listés comme routages multimédias. Le routage audio vers les appareils Bluetooth est désormais contrôlé uniquement au niveau du système Android.
Abandons
Les classes et les méthodes obsolètes sont susceptibles d'être supprimées dans une prochaine version. Nous vous recommandons de ne plus utiliser ces API dès que possible.
- Plusieurs méthodes des classes suivantes n'étaient requises que pour l'API 8 ou version antérieure et ne doivent plus être utilisées. Utilisez plutôt les implémentations du framework.
android.support.v4.view.KeyEventCompat
: remplacer parKeyEvent
.android.support.v4.view.MotionEventCompat
: utiliserMotionEvent
android.support.v4.view.ViewCompat
: utiliserView
android.support.v4.view.ViewConfigurationCompat
: utiliserViewConfiguration
-
Abandon de
AccessibilityServiceInfoCompat.getDescription()
, remplacé parAccessibilityServiceInfoCompat.loadDescription()
, qui renvoie une description correctement localisée. - Vous ne devez pas instancier la classe
ActivityCompat
directement. La méthodegetReferrer(Activity)
non statique sera rendue statique dans une prochaine version. CoordinatorLayout.Behavior.isDirty()
est obsolète et n'est plus appelé parCoordinatorLayout
. Toutes les implémentations ainsi que tous les appels à cette méthode doivent être supprimés.- Abandon de
MediaSessionCompat.obtain()
, remplacé par la méthodefromMediaSession()
, qui porte un nom plus approprié. - Abandon de
MediaSessionCompat.QueueItem.obtain()
et remplacement par la méthodefromQueueItem()
, qui porte un nom plus approprié. - Plusieurs classes abstraites ont été abandonnées et remplacées par des interfaces qui reflètent plus fidèlement leurs équivalents framework.
- Remplacement de
AccessibilityStateChangeListenerCompat
par l'interfaceAccessibilityManagerCompat.AccessibilityStateChangeListener
. - Remplacement de
OnCloseListenerCompat
par l'interfaceSearchViewCompat.OnCloseListener
. - Remplacement de
OnQueryTextListenerCompat
par l'interfaceSearchViewCompat.OnQueryTextListener
.
- Remplacement de
- Abandon de
CustomTabsSession.setToolbarItem()
, remplacé parsetSecondaryToolbarViews()
basé sur RemoteViews.
Correction de bugs
Les problèmes connus suivants ont été résolus dans la version 24.2.0:
- Assurez-vous que l'indicateur
SwipeRefreshLayout
s'affiche lorsquesetRefreshing(true)
est appelé avant la première mesure (problème AOSP 77712). - Blocage du clignotement de
TabLayout
lors du changement de page (problème AOSP 180454) - Éviter
ClassNotFoundException
lors du démarquage deSavedState
à partir du niveau d'API 11 (problème AOSP 196430)
La liste complète des corrections de bugs publiques est disponible sur l' outil de suivi des problèmes AOSP.
Révision 24.1.1
Juillet 2016
Problèmes résolus :
- Correction d'un problème dans la version 24.1.0 qui affectait les ID de ressources partagés entre les bibliothèques Support. En raison de ce problème, les applications qui dépendaient de bibliothèques Support proposant des ressources (telles que Design et Appcompat) étaient confrontées à des problèmes causés par des incohérences d'ID de ressource.
Révision 24.1.0
Juillet 2016
- Modifications apportées à la bibliothèque Support v4:
-
NotificationCompat.Action.WearableExtender
dispose de nouvelles méthodesgetHintDisplayActionInline()
etsetHintDisplayActionInline()
pour assurer la compatibilité avec Android Wear 2.0 Preview. Ces méthodes permettent à une application d'indiquer qu'une action doit être affichée conformément à la notification.- L'appel de
Fragment.setUserVisbileHint()
n'entraîne plus le démarrer d'un fragment si l'indice a été ajouté à unFragmentTransaction
qui n'est pas encore validé. Cela affecte les utilisateurs deFragmentPagerAdapter
qui ignorentsetUserVisbileHint()
et supposent un état de cycle de vie spécifique du fragment après l'appel desuper.setUserVisibleHint()
. Pour en savoir plus, consultez la page de la documentation de référence surFragment.setUserVisbileHint()
.
Problèmes résolus :
- TabLayout.setCustomView(null) génère une exception NullPointerException (problème AOSP 214753)
- TabLayout met mal en surbrillance les onglets personnalisés. (Problème AOSP 214316)
- AppCompatTextHelper utilise un tableau d'attributs mal trié (problème AOSP 214366)
- Impossible de référencer le VectorDrawable à partir du code XML du conteneur drawable lors de l'utilisation de ContextWrapper personnalisé (problème AOSP 214055)
- ViewDragHelper.saveLastMotion() génère ArrayIndexOutOfBoundsException (problème AOSP 212945)
- BottomSheetBehavior étendu à l'ancienne hauteur de contenu lors de l'utilisation de setState(STATE_EXPANDED) (problème AOSP 213660)
- CollapsingToolbarLayout ne gère pas les enfants épingler comme suit avec des marges supérieure ou inférieure (problème AOSP 213001)
- Le titre de navigation Leanback n'est pas compatible avec l'alignement de droite à gauche (problème AOSP 213461)
- PagerTabStrip disparaît en raison d'une annotation héritée manquante (problème AOSP 213359)
- La liaison de données génère une exception NullPointerException lors de l'utilisation de booléen pour définir des indicateurs conditionnels (problème AOSP 191841)
- CoordinatorLayout ne répond pas à setFitsSystemWindows() (problème AOSP 212720)
- BottomSheetBehavior plante lors de la définition de l'état initial (problème AOSP 203114)
- ViewPager ignore les pages si l'index de page est une valeur élevée (problème AOSP 211734)
- BottomSheetBehavior ne fonctionne pas avec les mises en page dynamiques (problème AOSP 205226)
Révision 24.0.0
Juin 2016
- Modifications apportées à la bibliothèque Support v4:
-
- Ajout de
Fragment.commitNow()
pour le commit synchrone. - Ajout de
NotificationCompat.MessagingStyle
pour les conversations à plusieurs - Ajout de
NotificationManagerCompat.areNotificationsEnabled()
et degetImportance()
- Mise à jour de
MediaSessionCompat
, qui reflète désormais la fonctionnalité deMediaSession
et n'appelle plussetMediaButtonReceiver()
automatiquement.
Remarque:Seul
MediaBrowserServiceCompat
dans la version 24.0.0 est rétrocompatible avec les futures versions d'Android au-delà de l'API 24. Si vous utilisez des versions antérieures, passez à cette version pour garantir la compatibilité. - Ajout de
- Modifications pour la bibliothèque Appcompat v7:
-
- Ajout de la prise en charge du référencement d'objets
ColorStateList
thématiques à partir de XML.
- Ajout de la prise en charge du référencement d'objets
- Modifications apportées à la bibliothèque Support Design:
-
- Améliorations apportées à la gestion de
AppBarLayout
de l'élévation à l'aide deStateListAnimator
.
- Améliorations apportées à la gestion de
- Modifications apportées à la bibliothèque Leanback v17:
-
- Ajout de
OnboardingFragment
pour fournir un flux de configuration et d'accueil à la première exécution
- Ajout de
- Modifications apportées aux onglets personnalisés:
-
- Ajout de la possibilité de fournir une hiérarchie
RemoteViews
pour la barre d'outils secondaire. - Ajout de
CustomTabsClient.connectAndInitialize()
pour l'échauffement sur une ligne
- Ajout de la possibilité de fournir une hiérarchie
Révision 23.4.0
Mai 2016
- Modifications apportées à la bibliothèque Support v4:
-
- Correction d'un problème qui provoquait l'ajout de fragments dans le mauvais ordre. (Problème : 206901)
- Résolution du problème lié à la barre d'application qui n'était pas dessinée après un défilement hors écran. (problème 178037).
- Modifications pour la bibliothèque Appcompat v7:
-
- Ajout de la méthode
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
pour réactiver l'utilisation des drawables vectoriels dans les objetsDrawableContainer
sur les appareils équipés d'Android 4.4 (niveau d'API 19) ou version antérieure. Pour en savoir plus, consultez la page AppCompat v23.2 – Âge des vecteurs. - Correction d'un problème dans l'API 23 où
AppCompatDelegate.setDefaultNightMode()
ne chargeait pas les ressources correctes au niveau d'API 23. (Problème : 206573) - Correction d'un problème pouvant entraîner une
NullPointerException
. (Problème : 207638)
- Ajout de la méthode
- Modifications apportées à la bibliothèque Support Design:
-
- Correction d'un problème qui empêchait
TextInputLayout
d'effacer la teinte d'erreur aprèssetErrorEnabled(false)
aux niveaux d'API 21 à 22 (problème 202829). - Correction d'un problème qui empêchait
FloatingActionButton
de renvoyer un résultat lorsque les animations sont désactivées. (Problème : 206416) - Correction d'un problème dans la fonctionnalité d'ancrage
AppBarLayout
lorsqu'elle était utilisée avec des indicateurs de défilement
. (Problème : 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- Correction d'un problème qui empêchait
- Modifications apportées à la bibliothèque de drawable vectoriel:
-
- Correction d'un bug qui empêchait
VectorDrawableCompat
de s'afficher correctement dansTextView
au niveau d'API 23. (Problème : 206227)
- Correction d'un bug qui empêchait
Révision 23.3.0
Avril 2016
- Modifications apportées à la bibliothèque Support v4:
-
- Ajout de
AppLaunchChecker
pour vous aider à suivre la façon dont votre application a été lancée par l'utilisateur dans le passé.hasStartedFromLauncher()
vous indique si l'utilisateur a déjà lancé votre application depuis l'écran d'accueil ou si elle n'a été lancée que par d'autres moyens (par exemple, pour afficher des URL Web spécifiques). - Correction d'une fuite de mémoire dans
MediaBrowserServiceCompat.mConnections
. (Problème 205220) - Correction d'un problème où
ViewPager
ne tenait pas compte des marges de la page lors du retournement. (Problème : 203816) Fragment.onRequestPermissionsResult()
est désormais transmis aux fragments enfants.
- Ajout de
- Modifications pour la bibliothèque Appcompat v7:
-
- Correction d'un problème dans
AppCompatSpinner
qui pouvait entraîner l'affichage de plusieurs pop-ups. (Problème : 205052) - Correction d'un problème de couleur des boutons sans bordure. (Problème 202967)
- Correction d'un problème de compatibilité entre
AppCompatDialogFragment
etAlertDialog
. (Problème : 204805) - Modifications rétablies pour
TintResources
qui causaient des problèmes de mémoire et de configuration. (Problème : 205236)
- Correction d'un problème dans
- Modifications apportées à la bibliothèque MediaRouter v7:
-
- Correction du comportement du curseur de volume
MediaRouteControllerDialog
. (Problème 202299)
- Correction du comportement du curseur de volume
- Modifications apportées à la bibliothèque Preference v7:
-
- Correction d'un problème qui provoquait le plantage de
PreferenceFragmentCompat
sidividerHeight
était spécifié. (Problème : 204778)
- Correction d'un problème qui provoquait le plantage de
- Modifications apportées à la bibliothèque recyclerview v7:
-
- Correction d'un bug qui empêchait
RecyclerView
d'appeler des rappels de défilement si la plage d'éléments visibles était réduite. (Problème 200987) - Correction d'un bug qui empêchait
RecyclerView
de se figer s'il était dans une mise en page linéaire, pondéré et contenait des images. (Problème : 203276) - Correction d'un plantage dans
OrientationHelper.getStartAfterPadding()
. (Problème 180521) - Correction d'un plantage lié aux utilisations de
android:nestedScrollingEnabled
. (Problème 197932)
- Correction d'un bug qui empêchait
- Modifications apportées à la bibliothèque Support Design:
-
- Correction d'un bug qui provoquait la gestion des événements tactiles via une bottom sheet masquée (Problème : 203654)
- Correction d'un problème de mise en page avec
BottomSheetBehavior
lorsquefitsSystemWindows
est défini sur "true". (Problème 203057) - Correction d'un problème d'accessibilité lié à
Snackbar
. (Problème : 182145) - Correction d'un plantage lors du balayage
Snackbar
. (Problème : 203924) - Correction d'un bug dans
AppBarLayout
avecenterAlways
. (Problème : 203661) - Correction d'un bug qui provoquait la suppression inutile du filtre de couleur d'arrière-plan de l'objet
EditText
parTextInputLayout
. (Problème : 203357)
Révision 23.2.1
Mars 2016
- Modifications apportées à la bibliothèque Support v4:
-
- Correction d'une exception dans
DrawableCompat.wrap()
etLayerDrawable
au niveau des niveaux d'API 17 à 19. (Problème 201817) - Correction d'une exception
ArrayIndexOutOfBoundsException
dansViewDragHelper.shouldInterceptTouchEvent()
. (Problème : 182262) - Correction d'un bug dans
ViewPager
lié au calcul du défilement pour les changements de taille. - Correction d'une
NullPointerException
lorsqueDrawerLayout.removeDrawerListener()
est appelé sansDrawerLayout.DrawerListener
défini. (Problème 202478) - Correction d'un bug qui empêchait
ViewPager
de définir correctement les paramètresAccessibilityEvent
lors du défilement. - Correction d'un problème qui entraînait un décalage lors de la rotation de l'appareil lors de l'utilisation de
Drawable.wrap()
. (Problème 201924)
- Correction d'une exception dans
- Modifications pour la bibliothèque Appcompat v7:
-
- Annulation de la dépendance aux éléments vectoriels de sorte que les développeurs utilisant la bibliothèque Appcompat ne soient pas obligés d'utiliser
VectorDrawable
et les indicateurs de compilation associés. - Correction d'un problème de compatibilité avec le mode Nuit et le niveau d'API 23. (Problème 201910)
- Correction d'un problème de compatibilité avec
SwitchCompat
et le niveau d'API 7. (Problème 201942) - Correction d'un problème lié à la propagation des valeurs de configuration dans les objets "Resources". Problème 201928
- Correction d'un problème de compatibilité où le bouton d'annulation
android.support.v7.app.NotificationCompat.MediaStyle
devenait invisible à partir du niveau d'API 21. (Problème 202156) - Correction d'un plantage de compatibilité avec
AppCompatSpinner
au niveau d'API 21 et inférieur. (Problème 202246) - Correction d'un problème qui empêchait le style
app:textAllCaps = "false"
de fonctionner. (problème 202117). - Correction d'un plantage lors de la restauration de
SearchView
. (Problème 201836) - Correction d'une fuite de mémoire qui se produisait lors de la teinte des ressources drawable avec AppCompat. (Problème 202379)
- Correction d'un problème lié à
KeyEvent
au niveau d'API 11 et inférieur. (Problème 202939)
- Annulation de la dépendance aux éléments vectoriels de sorte que les développeurs utilisant la bibliothèque Appcompat ne soient pas obligés d'utiliser
- Modifications apportées à la bibliothèque Cardview v7:
-
- Ajout de la prise en charge du mode Nuit pour
CardView
. (Problème : 194497)
- Ajout de la prise en charge du mode Nuit pour
- Modifications apportées à la bibliothèque recyclerview v7:
-
- Correction de bugs liés à diverses méthodes de spécification de mesure. (Problème 201856)
- Réduction de la période de verrouillage pendant laquelle
RecyclerView
n'autorise pas la modification de l'adaptateur lors du calcul d'une mise en page ou d'un défilement. (Problème 202046) - Correction d'un plantage survenant lors de l'appel de
notifyItemChanged()
sur un élément hors vue. (Problème 202136) - Correction d'un plantage qui survenait lorsque
RecyclerView.LayoutManager
ajoute et supprime une vue dans la même passe de mesure. (Problème : 193958)
- Modifications apportées à la bibliothèque MediaRouter v7:
-
- Correction d'un plantage qui survenait lors de l'appel de
MediaRouter.getInstance()
au niveau d'API 17. (Problème 180654)
- Correction d'un plantage qui survenait lors de l'appel de
- Changements pour la bibliothèque Leanback v17:
-
- Correction d'un problème lié à
GridLayout.onAddFocusables()
qui entraînait la sélection du mauvais élément. - Résolution du problème lié aux actions
GuidedStepFragment
qui disparaissaient après le repli d'une action.
- Correction d'un problème lié à
- Modifications apportées à la bibliothèque Support Design:
-
- Correction d'un plantage de
TabLayout
causé par le pooling d'onglets. (problème 201827). - Correction d'un bug dans
NavigationView
qui entraînait la sélection d'une couleur incorrecte. (Problème 201951) - Correction d'un bug qui empêchait
setBackgroundTintList()
de modifier la couleur de l'arrière-plan. (Problème 201873) - Correction d'un problème qui empêchait
AppBarLayout
de sortir complètement de la vue lorsqu'il était utilisé avecandroid:fitsSystemWindows = “true”
. (Problème 201822) - Correction d'un problème qui empêchait
BottomSheetDialog
d'afficher correctement les affichages de contenu courts. (Problème 201793) - Correction d'un problème qui entraînait le déplacement sporadique de
BottomSheetDialogFragment
lorsque le contenu à l'intérieur était modifié. (Problème 202125) - Correction d'un plantage dans le lien du compteur TextInputLayout.
- Correction d'un plantage qui survenait lorsque
TextInputLayout.getCounterMaxLength()
restait un état enregistré. (Problème 202375) - Correction d'une
ClassCastException
qui se produisait lors de la restauration d'unCoordinatorLayout
à l'aide de l'état enregistré d'une vue qui n'était pas uneCoordinatorLayout
.
- Correction d'un plantage de
- Modifications apportées à VectorDrawableCompat:
-
- Correction d'un bug qui provoquait la lecture d'une variable incorrecte pour
android:tintMode
. (Problème 201907)
- Correction d'un bug qui provoquait la lecture d'une variable incorrecte pour
Révision 23.2.0
Février 2016
- Modifications apportées à la bibliothèque Support v4:
-
- Ajout de
MediaBrowserCompat
pour la prise en charge deMediaBrowser
et deMediaBrowserServiceCompat
pour la prise en charge deMediaBrowserService
. Cela s'avère utile lorsque vous connectez le service d'arrière-plan d'une application multimédia à des composants d'interface utilisateur, et lorsque vous intégrez Android Auto et Android Wear sans nécessiter le niveau d'API 21 ou supérieur. - Le système appelle maintenant
onActivityResult()
pour un élémentFragmentActivity
imbriqué.
- Ajout de
- Modifications apportées à la bibliothèque AppCompat v7:
-
- Ajout de la fonctionnalité Mode Nuit aux niveaux d'API 14 et supérieurs. Basculez entre les thèmes Material Light et les thèmes sombres Material en fonction de l'heure ou d'un paramètre spécifique à l'application.
-
- Les thèmes Jour et Nuit sont disponibles ici:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
AppCompatDelegate.setDefaultNightMode()
: définit le mode par défaut de l'application en transmettant l'une des constantes suivantes:-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
: remplace le paramètre du mode Nuit pour le composant d'application locale.AppCompatDelegate.getDefaultNightMode()
: renvoie le mode Nuit par défaut.
- Les thèmes Jour et Nuit sont disponibles ici:
- Modifications apportées à la bibliothèque MediaRouter v7:
-
MediaRouteControllerDialog
applique désormais correctement les couleurs de thème d'application personnalisées.
- Modifications apportées à la bibliothèque d'aide pour la conception:
-
- Ajout de la compatibilité avec les bottom sheets. Un plug-in d'interaction,
BottomSheetBehavior
, permet à une vue enfant d'unCoordinatorLayout
d'agir en tant que bottom sheet. La classe de base,BottomSheetCallback
, fournit des rappels permettant de surveiller les événements de bottom sheet.
- Ajout de la compatibilité avec les bottom sheets. Un plug-in d'interaction,
- Modifications apportées à la bibliothèque Support CustomTab:
-
- Les onglets personnalisés Chrome permettent désormais aux applications d'inclure une barre inférieure avec des boutons d'action, en plus du bouton d'action supérieur existant.
CustomTabsIntent.Builder.addToolBarItem()
: ajoute un bouton d'action à un onglet personnalisé. Vous pouvez l'utiliser pour ajouter plusieurs boutons.CustomTabsSession.setToolBarItem()
: met à jour les visuels des éléments de la barre d'outils. Cette méthode ne fonctionne que si un ID valide lui est attribué et que la session de navigateur est exécutée au premier plan.
- Ajout de la bibliothèque de prise en charge de VectorDrawable:
-
- Classes ajoutées:
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- Ajout de la prise en charge des éléments
VectorDrawable
dans les applications exécutées au niveau d'API 7 ou supérieur. Les élémentsAnimatedVectorDrawable
sont également compatibles avec le niveau d'API 11 ou supérieur. Les éléments vectoriels peuvent être considérablement plus petits que les composants Image. Ils devraient aider à réduire la taille de l'application en diminuant la quantité d'éléments requis pour prendre en charge plusieurs écrans d'appareils. - Cette bibliothèque est désormais une dépendance de la bibliothèque AppCompat v7, ce qui permet aux développeurs et à AppCompat d'utiliser facilement des drawables vectoriels. Pour utiliser
VectorDrawableCompat
dans unImageButton
ou uneImageView
, utilisez l'attribut XMLapp:srcCompat
ou la méthodesetImageResource()
. - Pour continuer à référencer les ID d'attribut à partir du niveau d'API 20, ajoutez l'indicateur
appt
suivant à votre fichierbuild,gradle
: -
- Si vous utilisez le plug-in Android pour Gradle 1.5.0 ou version antérieure, ajoutez les éléments suivants à votre fichier
build.gradle
: -
android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }
- Si vous utilisez le plug-in Android pour Gradle 2.0.0 ou version ultérieure, ajoutez les éléments suivants à votre fichier
build.gradle
: -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- Si vous utilisez le plug-in Android pour Gradle 1.5.0 ou version antérieure, ajoutez les éléments suivants à votre fichier
- Changements pour la bibliothèque Leanback v17:
-
- Ajout de fonctionnalités à
GuidedStepFragment
, un composant qui guide les utilisateurs dans une décision ou une série de décisions: -
- Ajout d'actions de bouton à
GuidedAction
: GuidedStepFragment.setButtonActions()
: définit une liste de boutonsGuidedAction
que l'utilisateur peut sélectionner dans la vue "Actions".- Vous pouvez désormais modifier les champs de description:
-
GuidedAction.Builder.descriptionEditable()
: lors de la transmission detrue
, la description de l'action est modifiable.GuidedAction.getEditDescription()
: renvoie la description modifiable au formatCharSequence
.
- Ajout de listes déroulantes de sous-actions:
-
GuidedAction.setSubActions()
: définit une listeGuidedAction
sous la forme d'un menu déroulant de sous-actions.
- Ajout d'actions de bouton à
- Ajout du widget
GuidedDatePickerAction
pour la fonctionnalitéDatePicker
: -
- La date est sélectionnée à l'aide des colonnes Année, Mois et Jour, et possède une plage personnalisable.
GuidedDatePickerAction.Builder
: classe de compilateur pour l'objetGuidedDatePickerAction
.GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
: définissez le format de date souhaité en transmettant la valeurString
à trois caractères appropriée, par exemple“YMD”
ou“MDY”
. Vous pouvez également utiliser l'attribut XMLdatePickerFormat
.
- Ajout de fonctionnalités à
- Modifications pour la bibliothèque RecyclerView v7:
-
RecyclerView
dispose désormais d'une fonctionnalité facultative appelée AutoMeasure, qui permet àRecyclerView.LayoutManager
d'encapsuler facilement du contenu ou de gérer diverses spécifications de mesure fournies par le parent duRecyclerView
. Il est compatible avec toutes les fonctionnalités d'animation existantes deRecyclerView
.-
- Si vous disposez d'un
RecyclerView.LayoutManager
personnalisé, appelezsetAutoMeasureEnabled(true)
pour commencer à utiliser la nouvelle API AutoMeasure. Tous les objetsRecyclerView.LayoutManager
intégrés activent la mesure automatique par défaut. RecyclerView.LayoutManager
n'ignore plus certains paramètresRecyclerView.LayoutParams
, tels queMATCH_PARENT
dans le sens de défilement.Remarque:Ces restrictions levées peuvent entraîner un comportement inattendu dans vos mises en page. Veillez à spécifier les bons paramètres de mise en page.
- Si vous disposez d'un
- Lors de la mise à jour d'un
RecyclerView.ViewHolder
avec des informations de charge utile,DefaultItemAnimator
désactive désormais les animations de modification. - Vous pouvez maintenant modifier la vitesse d'échappement de
ItemTouchHelper
pour contrôler la sensibilité du balayage. Pour rendre le balayage plus facile ou plus difficile, remplacezgetSwipeEscapeVelocity(float defaultValue)
et modifiezdefaultValue
.
Révision 23.1.1
novembre 2015
- Modifications apportées à la bibliothèque recyclerview v7 :
-
- Correction d'un plantage qui survenait lorsque vous effectuiez une action "Balayer pour fermer" fournie par la classe d'utilitaire
ItemTouchHelper
, puis que vous ajoutiez un élément. (Problème 190500)
- Correction d'un plantage qui survenait lorsque vous effectuiez une action "Balayer pour fermer" fournie par la classe d'utilitaire
- Modifications apportées à la bibliothèque de préférences v7 :
-
- Correction d'un problème lié à l'utilisation de ProGuard. (Problème : 183261)
- Modifications apportées à la bibliothèque Support Leanback v17 :
-
- Correction d'un certain nombre de problèmes internes dans cette bibliothèque.
- Modifications apportées à la bibliothèque Design Support :
-
- Ajout de la méthode
getHeaderView
à la classeNavigationView
. - Correction d'un problème d'arrière-plan transparent pour un objet
FloatingActionButton
sur les appareils équipés d'Android 4.0 (niveau d'API 15) ou version antérieure. (Problème : 183315)
- Ajout de la méthode
Révision 23.1.0
octobre 2015
- Modifications apportées à la bibliothèque Support v4 :
-
- Ajout de la prise en charge de l'interface
OnScrollChangedListener
dans le widgetNestedScrollView
. Elle vous permet de recevoir des rappels lorsque la position X ou Y du défilement change. - Ajout d'une classe
MediaButtonReceiver
pour transférer les commandes de lecture reçues à un service qui gère la classeMediaSessionCompat
. La classeMediaSessionCompat
comporte un constructeur qui peut trouver automatiquement un récepteur de bouton multimédia dans le fichier manifeste. Un récepteur de bouton multimédia est un élément essentiel pour gérer les commandes de lecture à l'aide des commandes matérielles ou Bluetooth.
- Ajout de la prise en charge de l'interface
- Modifications apportées à la bibliothèque Appcompat v7 :
-
- Ajout des widgets Material Design
Seekbar
etImageButton
. - Mise à jour du widget
ImageView
pour prendre en charge la fonctionnalité de teinte. - Mise à jour de l'apparence du widget
SwitchCompat
.
- Ajout des widgets Material Design
- Modifications apportées à la bibliothèque MediaRouter v7 :
-
- Ajout des fonctionnalités suivantes à la classe
MediaRouteChooserDialog
: - Affiche une page de chargement lors de la recherche des fournisseurs de routages multimédias.
- Inclut une icône du type d'appareil pour une identification plus facile.
- Trie les itinéraires en fonction de la fréquence d'utilisation dans l'application actuelle.
- Il est compatible avec le mode Paysage.
- Ajout des fonctionnalités suivantes à la classe
MediaRouteControllerDialog
: - Reconnaît la diffusion d'écran et fournit une description appropriée.
- Accepte différentes tailles et formats de pochettes d'album, et charge l'image de manière asynchrone.
- Sélectionne automatiquement la couleur du contenu en fonction de la couleur principale de l'application.
- Permet d'ajuster la mise en page de la boîte de dialogue en fonction de l'espace disponible sur l'écran de l'appareil.
- Il est compatible avec le mode Paysage.
- Ajout des fonctionnalités suivantes à la classe
- Modifications apportées à la bibliothèque de palettes v7 :
-
- Ajout de la méthode
setRegion()
pour permettre l'extraction de couleur à partir d'une région spécifique d'un objetBitmap
.
- Ajout de la méthode
- Modifications apportées à la bibliothèque recyclerview v7 :
-
- Ajout d'une API d'animation améliorée à la classe
ItemAnimator
pour de meilleures personnalisations: - Les animations de modification n'appliquent plus deux copies de l'objet
ViewHolder
, ce qui active les animations de contenu d'élément. En outre, l'objetItemAnimator
décide s'il souhaite réutiliser le même objetViewHolder
ou en créer un autre. - La nouvelle API d'enregistrement d'informations offre à la classe
ItemAnimator
la flexibilité nécessaire pour collecter des données au bon moment du cycle de vie de la mise en page. Ces informations sont ensuite transmises aux rappels d'animation.
- Fournit un plan de transition facile pour cette modification d'API incompatible avec les versions antérieures:
- Si vous avez déjà étendu la classe
ItemAnimator
, vous pouvez remplacer votre classe de base parSimpleItemAnimator
. Votre code devrait fonctionner comme auparavant. La classeSimpleItemAnimator
fournit l'ancienne API en encapsulant la nouvelle API. - Certaines méthodes ont été supprimées de la classe
ItemAnimator
. Le code suivant ne sera plus compilé:
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
Vous pouvez le remplacer par:
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- Ajout d'une API d'animation améliorée à la classe
- Modifications apportées à la bibliothèque Preference Support pour les versions v7, v14 et v17:
-
- Suppression des API permettant de contrôler les boîtes de dialogue
EditText
.
- Suppression des API permettant de contrôler les boîtes de dialogue
- Modifications apportées à la bibliothèque Support Leanback v17 :
-
- Ajout d'une version de la classe
GuidedStepFragment
pour la bibliothèque Support (étendandroid.support.v4.app.Fragment
), et amélioration des animations et des transitions. - Mise à jour de la classe
GuidedStepFragment
afin qu'elle puisse être placée au-dessus du contenu existant. - Ajout de la possibilité d'annoter différents types d'achèvements de recherche dans la classe
SearchFragment
. - Ajout de la prise en charge de la transition de diapositives décalées à la classe
VerticalGridFragment
.
- Ajout d'une version de la classe
- Modifications apportées à la bibliothèque Design Support :
-
- Ajout de la prise en charge du
comptage de caractères au widget
TextInputLayout
. - Ajout de la prise en charge de l'ancrage des bords à la classe
AppBarLayout
en ajoutant la constanteSCROLL_FLAG_SNAP
. À la fin du défilement, si la vue n'est que partiellement visible, elle est ancrée et fait défiler l'écran jusqu'à son bord le plus proche. - Ajout de la prise en charge des vues personnalisées dans la classe
NavigationView
à l'aide de l'attributapp:actionLayout
ou de la méthodeMenuItemCompat.setActionView()
.
- Ajout de la prise en charge du
comptage de caractères au widget
- Modifications apportées à la bibliothèque Support pour les onglets personnalisés :
-
- Ajout de la méthode
enableUrlBarHiding()
à la classeCustomTabsIntent
. Elle permet au client de personnaliser si la barre d'URL doit être automatiquement masquée lorsque l'utilisateur fait défiler la page vers le bas. - Ajout de la méthode
setActionButton()
à la classeCustomTabsSession
. Elle permet au client de modifier l'icône d'un bouton d'action personnalisée dans un onglet personnalisé déjà lancé. - Ajout des constantes
TAB_SHOWN
etTAB_HIDDEN
en tant que nouveaux événements pour la méthodeonNavigationEvent
de la classeCustomTabsCallback
.
- Ajout de la méthode
Révision 23.0.1
Septembre 2015
- Modifications apportées à la bibliothèque Preference Support dans les versions v7 et v14:
-
- Ajout des fichiers de mise en page et de style Material Design. (Problème : 183376)
- Modifications apportées à la bibliothèque Appcompat v7 :
-
- Correction des problèmes de plantage de la classe
Fragment
en limitant l'utilisation des couches matérielles à Android 4.1 (niveau d'API 16) ou version ultérieure. (Problème : 183896) - Correction d'un problème qui empêchait les boutons physiques de fonctionner lorsqu'une activité avait défini la classe
Toolbar
pour qu'elle agisse en tant queActionBar
à l'aide de la méthodesetSupportActionBar()
. (Problème : 183334) - Mise à jour de la classe
AppCompatDialogFragment
pour qu'elle ne génère plus l'erreurWindows feature must be requested before adding content
. (Problème : 183186)
- Correction des problèmes de plantage de la classe
- Modifications apportées à la bibliothèque Design Support :
-
- Correction de la classe
AppBarLayout
afin qu'elle dessine désormais correctement après la rotation. (Problème : 183109) - Correction de la classe
TabLayout
afin qu'elle se comporte désormais correctement lorsqu'un utilisateur clique après un balayage. (Problème : 183123)
- Correction de la classe
- Modifications apportées à la bibliothèque Support pour les onglets personnalisés :
-
- La valeur de
minSdkVersion
a été réduite de 16 à 15 pour la compatibilité des versions. - Ajout d'un moyen de générer un
CustomTabsSessionToken
à partir d'un intent.
- La valeur de
Révision 23
Août 2015
- Ajout de bibliothèques Support:
Pour obtenir la liste complète des modifications apportées à la bibliothèque Support, consultez le rapport sur les différences entre les API de la bibliothèque Support.
Révision 22.2.1
juillet 2015
- Modifications apportées à la bibliothèque Design Support :
-
- Ajout des méthodes
hide()
etshow()
à la classeFloatingActionButton
pour le déclenchement programmatique des animations. - Ajout de la constante
LENGTH_INDEFINITE
à la classeSnackbar
pour afficher un snackbar jusqu'à ce qu'il soit fermé ou qu'un autre snackbar s'affiche. Ajout des méthodessetActionTextColor(int)
etsetActionTextColor(ColorStateList)
. - Ajout de la méthode
getSelectedTabPosition()
à la classeTabLayout
pour récupérer l'onglet actuellement sélectionné. - Fournit une API entièrement fluide pour la classe
android.support.v7.app.NotificationCompat.MediaStyle
afin de chaîner des méthodes. - Ajout de méthodes pratiques à
RecyclerView
pour l'insertion d'éléments par lot.
- Ajout des méthodes
Pour obtenir la liste complète des modifications apportées à la bibliothèque Support, consultez le rapport sur les différences entre les API de la bibliothèque Support.
Révision 22.2.0
Mai 2015
- Ajout de la bibliothèque Design Support :
-
- Ajout de
TextInputLayout
pour afficher l'indiceEditText
et le texte d'erreur sous forme de libellés flottants. - Ajout de
FloatingActionButton
pour implémenter une action principale sur votre interface en tant que bouton d'action flottant, compatible avec la taille par défaut ou mini. - Ajout de
Snackbar
pour fournir des commentaires légers avec une action facultative dans un snackbar animé - Ajout de
TabLayout
pour implémenter des onglets fixes et à faire défiler, ainsi que pour faciliter l'intégration àViewPager
. - Ajout de
NavigationView
pour implémenter le contenu du panneau de navigation, y compris la possibilité de gonfler des éléments de menu via une ressource de menu. - Ajout de
CoordinatorLayout
, une mise en page à usage général, utilisée pour créer des dépendances entre des vues sœurs et permettre des réactions de défilement faciles entre les composants viaCoordinatorLayout.Behavior
. De nombreux composants de la bibliothèque de conception reposent sur le fait d'être un enfant d'unCoordinatorLayout
. - Ajout de
AppBarLayout
, un conteneur pourToolbar
et d'autres vues (telles queTabLayout
) permettant de réagir aux événements de défilement en faisant défiler l'écran, de devenir visible en réaction à un défilement vers le bas, ou de se réduire/retirer avant de faire défiler l'écran. - Ajout de
CollapsingToolbarLayout
pour contrôler le mode de réduction d'uneToolbar
. Une barre d'outils peut se réduire en épinglant des composants en haut de l'écran pendant son repli, en introduisant un défilement parallaxe pour des composants tels qu'unImageView
, ou en ajoutant une couleur de fond de contenu lorsque la vue est partiellement réduite.
- Ajout de
- Modifications apportées à la bibliothèque Support v4 :
-
- Ajout des méthodes
getContentChangeTypes()
etsetContentChangeTypes()
, ainsi que des champs de type de modification associés, à la classeAccessibilityEventCompat
pour la gestion des événements d'accessibilité. - Ajout des méthodes
getActiveQueueItemId()
,getCustomActions()
etgetExtras()
avec des champs d'état associés à la classePlaybackStateCompat
pour obtenir des actions personnalisées à partir de la file d'attente. - Ajout des méthodes
addCustomAction()
,setActiveQueueItemId()
etsetExtras()
à la classePlaybackStateCompat.Builder
pour ajouter des actions personnalisées à un état de lecture. - Ajout des méthodes
fromCustomAction()
etgetCustomAction()
à la classePlaybackStateCompat.CustomAction
pour obtenir des actions personnalisées à partir de la file d'attente. - Ajout des méthodes
isAttachedToWindow()
,offsetLeftAndRight()
etoffsetTopAndBottom()
à la classeViewCompat
pour l'utilisation des vues. - Ajout des méthodes
addOnPageChangeListener()
,clearOnPageChangeListeners()
etremoveOnPageChangeListener()
à la classeViewPager
pour répondre aux modifications de page.Abandon de la méthode
ViewPager.setOnPageChangeListener()
. - Ajout de la méthode
notifySubtreeAccessibilityStateChanged()
à la classeViewParentCompat
pour avertir un parent de la vue que l'état d'accessibilité de l'un de ses descendants a changé. - Ajout des méthodes
translationZ()
,translationZBy()
,z()
etzBy()
à la classeViewPropertyAnimatorCompat
pour ajouter une animation.
- Ajout des méthodes
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Ajout de la méthode
onWindowStartingSupportActionMode()
aux classesAppCompatActivity
,AppCompatCallback
etAppCompatDialog
pour gérer les modes d'action démarrés à partir de la fenêtre actuelle. - Ajout des méthodes
isHandleNativeActionModesEnabled()
etsetHandleNativeActionModesEnabled()
à la classeAppCompatDelegate
pour gérer les modes d'action natifs.
- Ajout de la méthode
Pour obtenir la liste complète des modifications apportées à la bibliothèque Support, consultez le rapport sur les différences entre les API de la bibliothèque Support.
Révision 22.1.0
Avril 2015
- Modifications apportées à la bibliothèque d'annotations :
-
- Ajout de la bibliothèque Annotations pour permettre les inspections de code améliorées. Les annotations sont ajoutées en tant que balises de métadonnées que vous joignez aux variables, aux paramètres et aux valeurs de retour afin d'inspecter les valeurs de retour, les paramètres transmis, ainsi que les variables et les champs locaux.
- Modifications apportées à la bibliothèque Support v4 :
-
- Ajout de la classe
ColorUtils
pour fournir un ensemble de méthodes utilitaires liées aux couleurs. - Ajout des méthodes
unwrap()
etwrap()
à la classeDrawableCompat
, ce qui vous permet d'utilisersetTint()
,setTintList()
etsetTintMode()
sur tous les appareils de niveau d'API 4 ou supérieur. - Ajout de la classe
TraceCompat
pour écrire des événements de trace dans le tampon de trace du système, qui peut ensuite être collecté et visualisé à l'aide de l'outil Systrace. - Ajout de la classe
CircularIntArray
pour créer des structures de données de tableau d'entiers circulaires. - Ajout des méthodes
clear()
,removeFromStart()
etremoveFromEnd()
à la classeCircularArray
. Modification des méthodes existantes de cette classe pour qu'elles soient non finales. - Ajout de
InputDeviceCompat
en tant que classe d'assistance pour accéder aux données de la classeInputDeviceCompat
. - Ajout de la classe
LayoutInflaterCompat
en tant que classe d'assistance pour accéder aux données de la classeLayoutInflaterCompat
, et ajout de l'interfaceLayoutInflaterFactory
. - Ajout de classes, de méthodes et d'interfaces pour prendre en charge le défilement imbriqué.
- Ajout des classes d'assistance
NestedScrollingChildHelper
etNestedScrollingParentHelper
pour implémenter des vues parent et enfant à défilement imbriqué. - Ajout de l'interface
NestedScrollingChild
à implémenter par les sous-classesView
. - Ajout des interfaces
NestedScrollingParent
etScrollingView
pour prendre en charge les opérations de défilement et fournir des API liées au défilement. - Ajout de la méthode
getNestedScrollAxes()
à la classeViewGroupCompat
. - Ajout de méthodes à la classe
ViewParentCompat
pour permettre le défilement imbriqué. - Ajout de la classe
NestedScrollView
pour permettre la prise en charge du parent et de l'enfant du défilement imbriqué sur la nouvelle et l'ancienne version d'Android.
- Ajout des classes d'assistance
- Ajout de méthodes et de constantes à la classe
MotionEventCompat
pour obtenir les valeurs des axes et la source de l'événement. - Mise à jour de la classe
AccessibilityNodeInfoCompat
pour ajouter des méthodes pour les erreurs, l'invalidation de contenu et les libellés. - Ajout des classes d'interpolation suivantes pour l'animation :
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
etPathInterpolatorCompat
. - Ajout de la classe
Space
pour créer des espaces entre les composants dans les mises en page à usage général. Cette classe a été abandonnée dans la bibliothèque Gridlayout. - Ajout de la classe
TextViewCompat
pour accéder aux fonctionnalités d'unTextView
. - Ajout d'un paramètre de déplacement à la méthode
onPull()
dans la classeEdgeEffectCompat
.
- Ajout de la classe
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Ajout de la prise en charge de la teinte pour les widgets Appcompat, y compris
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
etAppCompatTextView
. - Mise à jour de
AppCompatActivity
en tant que classe de base pour les activités qui utilisent les fonctionnalités de la barre d'action de la bibliothèque Support. Cette classe remplace la classe obsolèteActionBarActivity
. - Ajout de l'interface
AppCompatCallback
à implémenter pour qu'AppCompat puisse effectuer des rappels. - Ajout de la classe abstraite
AppCompatDelegate
en tant que délégué que vous pouvez utiliser pour étendre la compatibilité d'AppCompat à n'importe quelle activité. - Ajout de la classe
AppCompatDialog
en tant que classe de base pour les boîtes de dialogue à thème AppCompat. - Ajout des classes de style de chargement
AlertDialog
etAlertDialog.Builder
pour fournir un élémentAlertDialog
sur le thème d'AppCompat. - Ajout de la classe
Palette.Builder
pour générer des instancesPalette
.- Ajout de la méthode
from(Bitmap)
à la classePalette
pour commencer à générer une Palette avec l'instancePalette.Builder
renvoyée. - Abandon des méthodes
Palette.generate()
etPalette.generateAsync()
.
- Ajout de la méthode
- Ajout de la méthode
getAbsoluteAlignment()
à la classeGridLayout.Spec
. - Abandon de l'utilisation de
app:theme
pour styliserToolbar
. Vous pouvez désormais utiliserandroid:theme
pour les barres d'outils sur tous les appareils avec un niveau d'API 7 ou supérieur, et la compatibilité deandroid:theme
avec tous les widgets sur les appareils de niveau d'API 11 ou supérieur.
- Ajout de la prise en charge de la teinte pour les widgets Appcompat, y compris
- Modifications apportées à la bibliothèque Leanback v17:
-
- Ajout de
GuidedStepFragment
,GuidanceStylist
etGuidedActionsStylist
pour permettre la création de flux de décision en plusieurs étapes.
- Ajout de
- Modifications apportées à la bibliothèque recyclerview v7:
-
- Ajout des classes
SortedList
pour afficher les éléments dans un ordre de liste et informer les modifications apportées à la liste. - Ajout de la classe
SortedListAdapterCallback
permettant de lier une liste triée à une classeRecyclerView.Adapter
.
- Ajout des classes
- Modifications apportées à la bibliothèque de scripts de rendu v8:
-
- Ajout de la classe
ScriptIntrinsicHistogram
pour l'utiliser comme filtre d'histogramme. - Ajout de la classe
ScriptIntrinsicResize
pour effectuer le redimensionnement d'une allocation 2D.
- Ajout de la classe
- Modifications apportées à la bibliothèque Support v4 :
-
- Mise à jour de la méthode
getDrawable()
afin de renvoyer un objet drawable pour un ID de ressource, une densité d'écran et un thème spécifiques. - Ajout de la méthode
setImportantForAccessibility()
pour que vous puissiez indiquer si une vue doit déclencher des événements d'accessibilité. - Ajout de la méthode
getStatusBarBackgroundDrawable()
pour vous permettre d'obtenir le drawable d'arrière-plan de la barre d'état. - Ajout de méthodes à la classe
NotificationCompat.CarExtender.UnreadConversation
pour que les applications de messagerie Android Auto puissent récupérer des données de notification supplémentaires. - Ajout de la méthode
getProgressCircleDiameter()
pour renvoyer le diamètre d'une mise en page circulaire. - Couleur par défaut de la barre d'état
DrawerLayout
définie surcolorPrimaryDark
.
- Mise à jour de la méthode
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Ajout du style de chargement
Base_Widget_AppCompat_Spinner_Underlined
. - Ajout de styles de widgets teintés avec
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
etBase_Widget_AppCompat_RatingBar
.
- Ajout du style de chargement
- Modifications apportées à la bibliothèque Leanback v17:
-
- Ajout des méthodes
getRecycledPoolSize()
etsetRecycledPoolSize()
pour autoriser les tailles de pools recyclées personnalisées. - Ajout de l'attribut
WRAP_CONTENT
au paramètre de largeur de mise en page pour prendre en charge le contenu encapsulé pour les icônes de titre. - Définition de
R.transition
en XML pour améliorer les mises à jour des transitions. - Activation de la compatibilité avec les mises en page de droite à gauche.
- Ajout de la prise en charge des événements de touche multimédia lecture et pause à la classe
PlaybackOverlayFragment
. - Ajout des transitions d'entrée et de retour à la classe
BrowseFragment
et à la classeDetailsFragment
. - Ajout de la méthode
replace()
pour remplacer les éléments du tableau d'adaptateurs d'un objet.
- Ajout des méthodes
- Modifications apportées à la bibliothèque Mediarouter v7:
-
- Mise à jour des icônes Google Cast pour utiliser le style Material Design.
- Mise à jour de toutes les icônes utilisées dans les boîtes de dialogue
MediaRouter
pour qu'elles utilisent le style Material Design.
- Modifications apportées à la bibliothèque recyclerview v7:
-
- Ajout des méthodes
getlayoutPosition()
etgetadapterPosition()
à la classeRecyclerView
. - Abandon des méthodes
classgetChildPosition()
etfindViewHolderForPosition()
dans la classeRecyclerView
. - Abandon de la méthode
getPosition()
dans la classeRecyclerView.ViewHolder
. - Abandon de la méthode
getViewPosition()
dans la classeRecyclerView.LayoutParams
.
- Ajout des méthodes
- Modifications apportées à la bibliothèque Support v4 :
-
- Ajout de plusieurs méthodes
NotificationCompat.WearableExtender
pour améliorer l'affichage des codes-barres dans les notifications sur les accessoires connectés.
- Ajout de plusieurs méthodes
- Modifications apportées à la bibliothèque Support v4 :
-
- Ajout de la classe
NotificationCompat.CarExtender
pour prendre en charge les extensions Android Auto dans les notifications.
- Ajout de la classe
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Ajout du constructeur
PopupMenu
pour prendre en charge les nouveaux menus pop-up. - Ajout de la prise en charge d'une description de l'icône Réduire dans la classe
Toolbar
. - Mise à jour du widget
SearchView
pour permettre l'affichage decommitIcon
. - Suppression de l'attribut
buttonGravity
de la classeToolbar
.
- Ajout du constructeur
- Modifications apportées à la bibliothèque Cardview v7:
-
- Ajout de l'API
setCardBackgroundColor(ColorStateList)
pour permettre la modification de la couleur d'arrière-plan deCardView
. - Modification de
CardView
pour indiquer plus précisément sa valeur d'opacité surTRANSLUCENT
.
- Ajout de l'API
- Modifications apportées à la bibliothèque recyclerview v7:
-
- Ajout des constantes
TOUCH_SLOP_DEFAULT
etTOUCH_SLOP_PAGING
à la classeRecyclerView
pour prendre en charge les configurations de pente tactile pour la pagination.
- Ajout des constantes
- Modifications apportées à la bibliothèque Leanback v17:
-
- Ajout de la possibilité de générer des fragments de code v4.
- Modification de la couleur du texte secondaire dans
CardView
.
- Ajout de la bibliothèque de support multidex pour prendre en charge plusieurs fichiers exécutables (Dalvik) afin d'assurer une compatibilité avec les fichiers multidex antérieurs à Android 5.0.
- Modifications apportées à la bibliothèque Support v4 :
-
- Prise en charge des transitions
Fragment
pour les appareils équipés d'Android 5.0 (niveau d'API 21). Sachez que les transitions n'ont aucun effet sur les appareils équipés d'Android 4.4 ou version antérieure. - Ajout de
DocumentFile
pour faciliter la transition depuisFile
lorsque vous utilisez des arborescences de documents. Cependant, cette classe nécessite davantage de coûts de traitement que l'APIDocumentsContract
de la plate-forme ajoutée dans Android 4.4 (niveau d'API 19). Vous devez donc utiliserDocumentsContract
sur Android 4.4 ou version ultérieure.
- Prise en charge des transitions
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Ajout de la compatibilité avec les interfaces utilisateur Material Design.
- Ajout de
Toolbar
, qui généralise la fonctionnalité deActionBar
pour une utilisation dans les mises en page d'applications. - Mise à jour de
ActionBarDrawerToggle
, qui contient l'animation entre le menu et la flèche - Mise à jour des widgets d'interface utilisateur courants pour permettre les teintes via les attributs de thème sur les appareils antérieurs à Android 5.0.
- Ajout de
SwitchCompat
, un rétroportage du widgetSwitch
ajouté dans Android 4.0 (niveau d'API 14).
- Nouvelle bibliothèque Cardview v7:
-
- Ajout du widget
CardView
, qui fournit une implémentation compatible avec Material Design pour afficher les éléments de données.
- Ajout du widget
- Nouvelle bibliothèque recyclerview v7:
-
- Ajout du widget
RecyclerView
, qui fournit une vue de liste flexible pour fournir une fenêtre limitée dans un ensemble de données volumineux.
- Ajout du widget
- Nouvelle bibliothèque de palettes v7:
-
- Ajout de la classe
Palette
, qui vous permet d'extraire les couleurs importantes d'une image.
- Ajout de la classe
- Nouvelle bibliothèque Leanback v17:
-
- Ajout de la prise en charge de la création d'interfaces utilisateur TV, y compris
BrowseFragment
,DetailsFragment
etPlaybackOverlayFragment
. Pour en savoir plus sur l'utilisation de ces widgets d'interface utilisateur, consultez Créer des applications de lecture TV.
- Ajout de la prise en charge de la création d'interfaces utilisateur TV, y compris
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de la prise en charge étendue des notifications pour Android Wear dans
NotificationCompat.WearableExtender
, ce qui vous permet de spécifier des fonctionnalités spécifiques à l'accessoire connecté dans vos notifications. - Ajout de
NotificationCompat.Action.WearableExtender
, qui permet d'ajouter des actions aux notifications sur les accessoires connectés. - Ajout de
NotificationManagerCompat
, qui vous permet d'envoyer des notifications compatibles avec les fonctionnalités des accessoires connectés. - Ajout de
RemoteInput
, qui permet à un appareil portable de recevoir une entrée vocale à partir d'une notification qui s'affiche sur un accessoire connecté. - Amélioration de la gestion du retour tactile dans
SwipeRefreshLayout
.
- Ajout de la prise en charge étendue des notifications pour Android Wear dans
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de la classe
SwipeRefreshLayout
, qui permet aux utilisateurs d'actualiser le contenu d'une vue avec un geste de balayage vertical. - Correction des problèmes d'accessibilité liés aux panneaux de navigation.
- Ajout de la classe
- Modifications apportées à la bibliothèque Appcompat v7:
-
- Correction des problèmes d'arrière-plan liés à la barre d'action.
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Amélioration de
PrintHelper
grâce à l'ajout de la gestion asynchrone de l'impression. - Correction de l'approximation de la classe
DrawerLayout
de la méthodeaddChildrenForAccessibility()
. - Correction de la mise en miroir des drawables de diapositives dans
ActionBarDrawerToggle
. - Correction d'un problème d'affichage individuellement lors de la suppression d'un élément d'un itérateur de collection.
- Amélioration de
- Modifications apportées à la bibliothèque MediaRouter v7:
-
- Amélioration de l'identification des itinéraires grâce à l'utilisation du nom complet du composant dans
MediaRouteProvider.ProviderMetadata
. - Mise à jour de
MediaRouteChooserDialog
pour masquer les routes désactivées.
- Amélioration de l'identification des itinéraires grâce à l'utilisation du nom complet du composant dans
- Modifications apportées à la bibliothèque de scripts de rendu v8
-
- Ajout de la propagation des erreurs pour la couche de thunking de RenderScript.
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de la prise en charge des API de stockage externes avec
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
etgetStorageState()
. Ces méthodes d'assistance renvoient toujours un seul objet de fichier sur les appareils équipés d'Android 4.3 (niveau d'API 18) ou version antérieure. Sur Android 4.4 (niveau d'API 19) ou version ultérieure, ces méthodes peuvent renvoyer plusieurs objets fichier. - Ajout de la classe
PrintHelper
, qui fonctionne avec les API Print pour imprimer des images avec un minimum de code. - Ajout de la prise en charge de l'interface utilisateur de type "faire glisser pour ouvrir" pour les menus contextuels. Pour en savoir plus, consultez
PopupMenuCompat
etListPopupWindowCompat
. - Amélioration de la prise en charge de l'accessibilité grâce à l'ajout d'une méthode
findFocus()
dansAccessibilityNodeProviderCompat
et de la méthodegetLiveRegion()
dansAccessibilityNodeInfoCompat
. - Ajout de la classe d'assistance
ScaleGestureDetectorCompat
pour accéder à de nouvelles méthodes de geste de scaling. - Correction du problème lié à
ActionBarDrawerToggle
dans les langues qui s'affichent de droite à gauche. - Modification de l'option
AutoScrollHelper
afin d'utiliser les événements tactiles ou d'autoriser leur transmission à d'autres vues.
- Ajout de la prise en charge des API de stockage externes avec
- Modifications apportées à la bibliothèque MediaRouter v7:
-
- Ajout de la prise en charge de la mise en file d'attente des contenus multimédias et de la définition des valeurs d'en-tête HTTP et de la durée de lecture des contenus multimédias.
- Ajout d'actions explicites de démarrage, d'obtention et de fin de session pour gérer explicitement les sessions de lecture de contenus multimédias avec le routeur multimédia.
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Interface utilisateur
- Ajout de
BidiFormatter
pour gérer les chaînes de texte qui combinent du texte mis en forme de droite à gauche et de gauche à droite. - Modification de
ViewPager
afin de mieux gérer les cas où le bipeur présente une largeur mesurée de zéro lors du traitement initial de la mise en page. - Modification de
DrawerLayout
etSlidingPaneLayout
de façon à ne pas générer d'exceptions pour la mesure pendant la modification du code du projet.
- Ajout de
- Accessibilité
- Ajout de
ExploreByTouchHelper
pour simplifier l'implémentation de l'accessibilité dans les vues personnalisées. - Correction d'un problème dans lequel
ViewPager
remplissait de manière incorrecte les événements d'accessibilitéTYPE_VIEW_SCROLLED
. - Correction d'une exception de pointeur nul dans
ViewPager
lors du remplissage d'un événement d'accessibilité. - Simplification de
AccessibilityNodeInfoCompat
en remplaçant les entréesCharSequence
par des objetsString
. - Abandon d'un constructeur
AccessibilityRecordCompat
qui utilisait unObject
comme entrée.
- Ajout de
- Multimédia
- Ajout de la classe d'assistance
TransportMediator
pour gérer les commandes de transport multimédia, comme lecture, pause, passer et d'autres actions multimédias. - Ajout de
DisplayManagerCompat
pour gérer la sortie d'affichage sur un ou plusieurs écrans d'appareil.
- Ajout de la classe d'assistance
- Autres modifications
- Ajout de la classe d'assistance
WakefulBroadcastReceiver
pour implémenter un modèle courant permettant de détecter un événement de réveil de l'appareil et de transmettre le travail à unService
, tout en garantissant que l'appareil ne se met pas en veille avant la fin du transfert. - Ajout de deux API,
commitContentChanged()
etrollbackContentChanged()
, àAsyncTaskLoader
pour faciliter la gestion des mises à jour en arrière-plan pour les modifications de données qui sont ensuite annulées.
- Ajout de la classe d'assistance
- Interface utilisateur
- Nouvelle bibliothèque Appcompat v7:
-
- Ajout de
ActionBar
pour permettre l'implémentation du modèle de conception de l'interface utilisateur de la barre d'action sur Android 2.1 (niveau d'API 7) ou version ultérieure. Pour utiliser cette classe, vous devez implémenter votre activité en étendant la nouvelle classeActionBarActivity
.
- Ajout de
- Nouvelle bibliothèque MediaRouter v7:
-
Ajout d'une bibliothèque MediaRouter compatible avec la Preview développeur de Google Cast. Les API de la bibliothèque MediaRouter v7 permettent de contrôler le routage des canaux multimédias et des flux depuis l'appareil actuel vers des écrans, des enceintes et d'autres appareils de destination externes, avec une compatibilité remontant à Android 2.1 (niveau d'API 7). Pour en savoir plus, consultez la bibliothèque MediaRouter V7.
Les API de la bibliothèque MediaRouter v7 introduites dans la bibliothèque Support r18 sont susceptibles d'être modifiées dans les révisions ultérieures de la bibliothèque Support. Pour le moment, nous vous recommandons de n'utiliser la bibliothèque qu'en association avec la preview développeur de Google Cast.
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de
DrawerLayout
pour créer un panneau de navigation pouvant être extrait à partir du bord d'une fenêtre. - Ajout du widget
SlidingPaneLayout
pour créer des vues récapitulatives et détaillées associées qui s'adaptent de manière appropriée à différentes tailles d'écran. - Ajout de
ActionBarDrawerToggle
pour lier les fonctions deDrawerLayout
etActionBar
. - Ajout de
ViewDragHelper
en tant que nouveau composant commun pour faire glisser des vues dans une vue parent. - Ajout de
ScrollerCompat
pour assurer la compatibilité avecScroller
etOverScroller
. - Ajout de
FileProvider
pour permettre le partage de fichiers privés entre des applications. - Mise à jour de
ViewPager
pour générer une exception si la classePagerAdapter
associée est modifiée sans appeler denotifyDataSetChanged()
. - Correction d'un problème dans lequel les enfants
ViewPager
dessinaient l'ordre de tri. - Correction de
GestureDetectorCompat
pour distribuer les appelsonSingleTapConfirmed(MotionEvent)
manquants entre le délai avant expiration et les événements d'appui prolongé.
- Ajout de
- Nouvelle bibliothèque de mise en page en grille dans la version 7:
-
- Ajout de
GridLayout
pour prendre en charge l'objet de mise en pageGridLayout
. - Ajout de
android.support.v7.widget.Space
, qui permet de créer des zones vides dans un objet de mise en pageGridLayout
.
- Ajout de
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Amélioration du comportement d'interaction pour
ViewPager
. - Correction d'un bug qui pouvait amener
ViewPager
à sélectionner la mauvaise page. - Correction de l'utilisation de la méthode
removeView()
lors de la mise en page deViewPager
. - Correction d'un problème lié à
SearchViewCompat
où l'utilisation du bouton "Retour" pour ignorer n'effaçait pas le texte de la recherche. Ce correctif ne s'applique qu'aux niveaux d'API hôte 14 et supérieurs.
- Amélioration du comportement d'interaction pour
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Interface utilisateur
- Ajout de la prise en charge des classes
Fragment
imbriquées. - Ajout d'améliorations au débogage de
FragmentManager
. - Correction d'un problème dans
FragmentTabHost
où l'interaction entre les fragments et les onglets pouvait entraîner une perte d'étatListView
. - Correction du problème lié à l'indice visible par l'utilisateur dans
FragmentStatePagerAdapter
. - Ajout de l'interface
PageTransformer
àViewPager
pour permettre aux applications de fournir un comportement de transition personnalisé pour le défilement. - Ajout de fonctionnalités et correctifs à
TaskStackBuilder
dans la version actuelle. - Correction de
PagerTitleStrip
pour suivre correctement laPagerAdapter
actuellement utilisée. - Correction des problèmes de scintillement de l'écran, de positionnement et de rognage du texte avec
PagerTitleStrip
. - Correction de
PagerTabStrip
pour respecter correctement la marge intérieure lors du dessin d'un soulignement.
- Ajout de la prise en charge des classes
- Accessibilité
- Ajout de la prise en charge de nouveaux types d'événements tactiles et de gestes d'accessibilité dans
AccessibilityEventCompat
. - Ajout de la prise en charge de nouvelles API d'accessibilité dans
ViewCompat
. - Ajout de la prise en charge de la méthode
performAccessibilityAction()
dansViewCompat
.
- Ajout de la prise en charge de nouveaux types d'événements tactiles et de gestes d'accessibilité dans
- Ajout de la prise en charge des gestes avec
GestureDetectorCompat
. - Ajout de la possibilité d'effectuer des opérations atomiques sur des fichiers à l'aide d'une nouvelle classe
AtomicFile
. - Ajout de la prise en charge de l'ensemble complet des méthodes
make
dansIntentCompat
. - Ajout de la méthode
trimToSize()
dans la classe utilitaireLruCache
. - Mise à jour de
ConnectivityManagerCompat
pour obtenir NetworkInfo à partir d'une diffusionCONNECTIVITY_ACTION
.
- Interface utilisateur
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Prise en charge des fonctionnalités de notification introduites dans Android 4.1 (niveau d'API 16) avec des ajouts à
NotificationCompat
.
- Prise en charge des fonctionnalités de notification introduites dans Android 4.1 (niveau d'API 16) avec des ajouts à
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Compatibilité avec l'interface utilisateur
- Ajout de la compatibilité avec
PagerTabStrip
, ce qui offre des fonctionnalités améliorées au-delà dePagerTitleStrip
. - Correction de plusieurs bugs pour
PagerTitleStrip
etPagerTabStrip
, y compris l'optionsetAllCaps
, l'alignement du titre, l'amélioration de l'apparence, les contraintes de largeur minimale et les problèmes de navigation tactile. - Ajout de la prise en charge des gouttières de page
ViewPager
, ce qui permet à la classeViewPager
de prendre en charge la pagination pour du contenu présentant une grande plage de défilement horizontal, comme une carte. - Correction de nombreux bugs pour
ViewPager
, y compris des problèmes de modification de la taille et de l'ensemble de données, du positionnement des pages, des interactions utilisateur, du suivi du défilement et des problèmes de navigation au clavier. - Correction de nombreux bugs pour
Fragment
, y compris la gestion correcte deonActivityResult()
lorsque le fragment cible n'existe plus, la distribution des événements de sélection à des fragments invisibles, l'amélioration du comportementFragmentTransaction.replace()
et une meilleure gestion de l'état pour les fragments retirés de la vue. - Ajout de la prise en charge de la méthode
postOnAnimation()
dansViewCompat
. - Mise à jour de
NavUtils
pour utiliser la fonctionnalité de navigation Haut d'Android 4.1 (niveau d'API 16) lorsqu'elle est disponible.
- Ajout de la compatibilité avec
- Accessibilité
- Mise à jour des classes d'assistance pour l'accessibilité, y compris
AccessibilityNodeInfoCompat
, pour suivre les correctifs effectués dans Android 4.1 (niveau d'API 16). - Ajout de la prise en charge des actions de défilement d'accessibilité dans
ViewPager
.
- Mise à jour des classes d'assistance pour l'accessibilité, y compris
- Améliorations générales
- Mise à jour de
TaskStackBuilder
pour refléter les modifications apportées à l'API dans Android 4.1 (niveau d'API 16). - Amélioration de
TaskStackBuilder
pour permettre son utilisation à partir d'un service. - Ajout de la prise en charge de
EXTRA_HTML_TEXT
dansShareCompat
. - Mise à jour de
NotificationCompat.Builder
pour prendre en charge la méthodesetNumber()
. - Ajout de la prise en charge de la méthode
isActiveNetworkMetered()
dansConnectivityManagerCompat
.
- Mise à jour de
- Compatibilité avec l'interface utilisateur
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Correction des indicateurs d'intent pour les objets
PendingIntent
générés parTaskStackBuilder
. - Suppression des attributs inutilisés des projets de bibliothèque de mise en page en grille pour que la bibliothèque puisse être créée avec le niveau d'API 7 ou supérieur.
- Ajout des fichiers
.classpath
et.project
pour le projet de bibliothèque GridLayout.
- Correction des indicateurs d'intent pour les objets
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de
ShareCompat
, qui fournit des classes d'assistance pour l'envoi et la réception de contenu pour les applications de partage sur les réseaux sociaux, y compris de nouvelles métadonnées permettant d'attribuer des données partagées à l'application source. Cette classe offre également une intégration compatible avec le nouveauShareActionProvider
dans Android 4.0. - Ajout de
NavUtils
etTaskStackBuilder
pour permettre l'implémentation des consignes de conception Android pour la navigation. Ces ajouts incluent la possibilité d'implémenter le bouton Haut de la barre d'action dans toutes les versions. Pour obtenir un exemple d'implémentation de ce modèle, consultez l'exemple AppNavigation dans (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
). - Ajout de
NotificationCompat.Builder
pour assurer la compatibilité avec la classe d'assistanceNotification.Builder
d'Android 3.0 afin de créer des notifications système standardisées.
- Ajout de
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Modifications apportées à ViewPager :
- Ajout de la prise en charge des vues décoratives pour
ViewPager
. Les vues décoratives peuvent être fournies en tant que vues enfants d'un pager dans une mise en page XML. - Ajout de
PagerAdapter.getPageTitle()
pour fournir des chaînes de titre pour les pages. Aucun titre n'est défini par défaut pour chaque page. - Ajout de
PagerTitleStrip
, une bande de titre non interactive qui peut être ajoutée en tant qu'enfant de ViewPager. Les développeurs peuvent fournir l'apparence et la couleur du texte, ainsi que des informations sur le dimensionnement de la mise en page et la gravité. - Mise à jour des méthodes
PagerAdapter
pour prendre des objets ViewGroup plutôt que View afin d'éviter le casting de classe dans les implémentations d'adaptateur. - Mise à jour de
ViewPager
pour utiliser un comportement de glissement d'un geste vif de style Lanceur d'applications. - Correction de bugs liés à l'interaction avec l'interface utilisateur et à l'automatisation des tests.
- Ajout de la prise en charge des vues décoratives pour
- Compatibilité avec les fragments :
- Remplacement de la méthode
setStartDeferred()
parsetUserVisibleHint(boolean)
. - Ajout d'un démarrage différé pour les pages hors écran afin d'améliorer les performances.
- Remplacement de la méthode
- Compatibilité avec les API d'accessibilité :
- Mise à jour des méthodes
AccessibilityDelegateCompat
pour renvoyer des listes vides au lieu de valeurs nulles. - Ajout des API nécessaires aux exemples de la version 4.
- Mise à jour des méthodes
- Modifications apportées à ViewPager :
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Compatibilité avec les API d'accessibilité :
- Ajout de
AccessibilityDelegateCompat
pour prendre en chargeView.AccessibilityDelegate
. - Ajout de
AccessibilityEventCompat
pour prendre en chargeAccessibilityEvent
. - Ajout de
AccessibilityManagerCompat
pour prendre en chargeAccessibilityManager
. - Ajout de
AccessibilityNodeInfoCompat
pour prendre en chargeAccessibilityNodeInfo
. - Ajout de
AccessibilityRecordCompat
pour prendre en chargeAccessibilityRecord
. - Ajout de
AccessibilityServiceInfoCompat
pour prendre en chargeAccessibilityServiceInfo
. - Ajout de
ViewGroupCompat
pour prendre en charge les fonctionnalités d'accessibilité dansViewGroup
. - Modification de
ViewCompat
pour prendre en charge les fonctionnalités d'accessibilité dansView
.
- Ajout de
- Modifications apportées à ViewPager :
- Ajout de la prise en charge des marges entre les pages.
Un élément
Drawable
facultatif peut être fourni pour remplir les marges. - Ajout de la prise en charge de
EdgeEffect
. - Ajout de la prise en charge de la navigation via le clavier.
- Ajout de la possibilité de contrôler le nombre de pages placées de chaque côté de la page actuelle.
- Amélioration de la physique des écrans tactiles.
- Correction de bugs liés au comportement de l'interface utilisateur.
- Ajout de la prise en charge des marges entre les pages.
Un élément
- Compatibilité avec les API d'accessibilité :
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de
EdgeEffectCompat
pour prendre en chargeEdgeEffect
. - Ajout de
LocalBroadcastManager
pour permettre aux applications de s'inscrire et de recevoir facilement des intents dans une seule application sans les diffuser à l'échelle mondiale. - Ajout dans
ViewCompat
de la possibilité de rechercher et de définir des modes de défilement hors limites pour lesView
sur Android 2.3 et versions ultérieures. - Modifications apportées aux API Fragment :
- Ajout d'API pour contrôler la visibilité des nouveaux menus.
- Ajout d'API d'animation personnalisées.
- Ajout d'API dans
FragmentActivity
pour conserver des données d'instance personnalisées et non de configuration. - Résolution de plusieurs bugs.
- Correction d'un bug
Loader
qui entraînait des problèmes d'annulation deAsyncTask
lors de leur exécution sur Froyo et d'anciennes versions de la plate-forme. Le code d'assistance utilise désormais sa propre version deAsyncTask
pour conserver le même comportement sur toutes les versions de la plate-forme.
- Ajout de
- Modifications apportées à la bibliothèque Support de la version 4:
-
- Ajout de la prise en charge de
Fragment.SavedState
. - Ajout de
MotionEventCompat
pour prendre en charge les APIMotionEvent
les plus récentes. - Ajout de
VelocityTrackerCompat
pour prendre en charge des APIVelocityTracker
plus récentes. - Ajout de
ViewConfigurationCompat
pour prendre en charge des APIViewConfiguration
plus récentes. - Toutes les nouvelles API (disponibles uniquement dans la bibliothèque Support) qui vous permettent de créer des interfaces utilisateur avec pagination horizontale, permettant aux utilisateurs de balayer l'écran vers la gauche ou vers la droite entre les vues de contenu. Les classes compatibles sont les suivantes :
ViewPager
:ViewGroup
qui gère la mise en page des vues enfants que l'utilisateur peut parcourir en balayant l'écran.PagerAdapter
: adaptateur qui remplitViewPager
avec les vues représentant chaque page.FragmentPagerAdapter
: extension dePagerAdapter
permettant d'inverser les fragments.FragmentStatePagerAdapter
: extension dePagerAdapter
permettant de basculer entre les fragments et utilisant la compatibilité de la bibliothèque avecFragment.SavedState
.
- Ajout de la prise en charge de
- Nouvelle bibliothèque Support v13:
-
- Inclut
FragmentPagerAdapter
etFragmentStatePagerAdapter
pour permettre la pagination horizontale.Elles sont exactement les mêmes que les API ajoutées à la bibliothèque Support v4, mais reposent sur d'autres composants de plate-forme dans Android 3.2. Utilisez cette bibliothèque à la place de la version 4 si vous développez pour Android 3.2 ou version ultérieure (toutes les autres API de la bibliothèque v4 sont déjà disponibles avec le niveau d'API 13).
- Inclut
- Modifications apportées à la bibliothèque v4:
-
- Prise en charge des animations de fragment
- Corriger le bug
Fragment.onActivityResult()
Révision 22
Mars 2015
Révision 21.0.3
Décembre 2014
Révision 21.0.2
novembre 2014
Révision 21.0.1
novembre 2014
Révision 21
Octobre 2014
Révision 20
Juillet 2014
Révision 19.1.0
Mars 2014
Révision 19.0.1
Décembre 2013
Révision 19
Octobre 2013
Révision 18
Juillet 2013
Révision 13
Mai 2013
Révision 12
Février 2013
Révision 11
Novembre 2012
Révision 10
Août 2012
Révision 9
Juin 2012
Révision 8
Avril 2012
Révision 7
Mars 2012
Révision 6
Décembre 2011
Remarque : La documentation de référence des API de la bibliothèque Support est désormais disponible avec les références du framework, par exemple android.support.v4.app
.
Révision 5
Décembre 2011
Révision 4
Octobre 2011
Révision 3
Juillet 2011
Révision 2
Mai 2011
Révision 1
Mars 2011
Version initiale avec la bibliothèque v4.