En esta página, se proporcionan detalles sobre las versiones anteriores de los paquetes de la biblioteca de compatibilidad. Para acceder a los lanzamientos más recientes, consulta Revisiones recientes de la biblioteca de compatibilidad.
Revisión 26.0.0 Beta 2
(junio de 2017)
Ten en cuenta que la revisión 26.0.0-beta2 es una versión previa al lanzamiento. Su superficie de API está sujeta a cambios y no necesariamente incluye funciones o correcciones de errores de las últimas versiones estables de la biblioteca de compatibilidad.
Importante: Las bibliotecas de compatibilidad ahora están disponibles a través del repositorio Maven de Google. No es necesario que descargues el repositorio de compatibilidad de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.
API nuevas
- Nueva clase
JobIntentService
para ayudar a los desarrolladores a programar tareas de una manera que cumpla con los nuevos límites de ejecución en segundo plano de Android O.
Diferencias de API
Correcciones de errores
- La caída del SDK de Android O provoca la pérdida de cursiva en TextViews
- Excepción de puntero nulo durante la conexión a MediaBrowserServiceCompat
- TextInputLayout debe establecer sugerencias en onProvideAutofillStructure()
- Desbordamiento de pila cuando se ajusta automáticamente el tamaño de TextView en O
Revisión 26.0.0 Beta 1
(mayo de 2017)
Ten en cuenta que la revisión 26.0.0-beta1 es una versión previa al lanzamiento. Su superficie de API está sujeta a cambios y no necesariamente incluye funciones o correcciones de errores de las últimas versiones estables de la biblioteca de compatibilidad.
Importante: Las bibliotecas de compatibilidad ahora están disponibles a través del repositorio Maven de Google. No es necesario que descargues el repositorio de compatibilidad de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.
Cambios importantes
- Se quitaron
FragmentActivity.setSupportMediaController()
yFragmentActivity.getSupportMediaController()
. Utiliza los nuevos métodos estáticosMediaControllerCompat.setMediaController()
yMediaControllerCompat.getMediaController()
. BottomNavigationView
ahora llama aonNavigationItemReselected()
cuando se selecciona un elemento ya seleccionado, en lugar de llamar aonNavigationItemSelected()
.- Todas las instancias del método
findViewById()
ahora devuelven<T extends View> T
en lugar deView
. Este cambio tiene las siguientes consecuencias:- Esto puede hacer que el código existente tenga un tipo ambiguo de datos que se muestra. Por ejemplo, si hay
someMethod(View)
ysomeMethod(TextView)
, el resultado de una llamada esfindViewById()
. - Cuando se usa un idioma de origen Java 8, se requiere una conversión de tipos explícita a
View
cuando el tipo de datos que se muestra no tiene restricciones (por ejemplo,assertNotNull(findViewById(...)).someViewMethod())
). - En las anulaciones de métodos
findViewById()
no finales (por ejemplo,Activity.findViewById()
), será necesario actualizar el tipo de datos que se muestra.
- Esto puede hacer que el código existente tenga un tipo ambiguo de datos que se muestra. Por ejemplo, si hay
API nuevas
-
FragmentManager
yFragment
tienen un métodoisStateSaved()
para consultar si se permitirá o no una transacción sin pérdida de estado. Eso es especialmente útil para verificar un eventoonClick()
antes de ejecutar cualquier transacción. - En
AnimatedVectorDrawableCompat
, se admite el movimiento de rutas. El movimiento de rutas permite que un animador de objetos cambie dos propiedades al mismo tiempo en función de una ruta; la ruta se especifica comoandroid:pathData
en el archivo XML del animador. - Animación basada en la física:
FlingAnimation
nuevo que admite animar con una velocidad inicial y disminuirla sin inconvenientes.- Las subclases de
DynamicAnimation
admiten propiedades personalizadas de animación para cualquier objeto. - Tanto
SpringAnimation
comoFlingAnimation
ahora pueden animar un valor flotante sin requerir que se asocie con unView
o unObject
.
Para obtener más información, consulta las páginas de vista previa de Animación de primavera y Animación de lanzamiento.
-
Compatibilidad de fuentes en XML:
ResourcesCompat.getFont
permite cargar recursos de fuente, incluido el archivo XML de familia de fuentes, que pueden usarse conTextView.setTypeface()
.- Cuando se usa AppCompat, TextView admite especificar un recurso de fuente o un XML de familia de fuentes por medio del atributo XML
android:fontFamily
. - Usa el XML de familia de fuentes para crear familias de fuentes con variaciones de estilo y peso. (Si usas las clases de biblioteca de compatibilidad para hacerlo, usa los atributos
app:
y los atributosandroid:
).
- Fuentes para descargar:
FontsContractCompat
nuevo que permite que solicites fuentes de un proveedor de fuentes en lugar de empaquetarlas en tu app.- Las fuentes también pueden solicitarse en XML y usarse en los diseños.
-
Biblioteca de compatibilidad de emojis:
EmojiCompat
puede procesar unCharSequence
determinado y agregarEmojiSpans
.EmojiTextView
y otros widgets para mostrar los emojis.FontRequestEmojiCompatConfig
para solicitar fuentes de emojis de un proveedor de fuentes.
- Ajuste automático de tamaño de TextView:
- Nuevos métodos en
TextViewCompat
, así como atributos XML para controlar el ajuste de tamaño automático enTextView
.
- Nuevos métodos en
- Controles de reproducción Leanback con compatibilidad de búsqueda:
-
PlaybackTransportRowPresenter
nuevo que representa los controles de reproducción con una barra de búsqueda.PlaybackTransportControlGlue
nuevo que funciona conPlaybackTransportRowPresenter
y admite búsquedas.- Nueva clase base
PlaybackSeekDataProvider
para que la app proporcione miniaturas de búsqueda aPlaybackTransportControlGlue
.
- Almacén de datos de preferencias:
PreferenceDataStore
ahora permite implementar tu propio almacenamiento de preferencias, establecido con métodos nuevos enPreference
yPreferenceManager
.
Problemas conocidos
- La integración de la compatibilidad de fuentes y emojis descargables con los Servicios de Google Play solo funciona con la versión 11 o posterior de los Servicios de Google Play, que actualmente está disponible en el programa Beta de los Servicios de Google Play.
Correcciones de errores
- La API de
MediaBrowserCompat.search()
no funciona (problema 262170 de AOSP) ViewCompat.postInvalidateOnAnimation()
arroja una excepción (problema 80146 de AOSP)onActivityCreated()
llamó a fragmentos en una actividad destruida-
RecyclerView.isComputingLayout()
debe mostrar "true" durante la precarga -
Cuando se interrumpe y se invierte una transición de
Fade
,View
comienza la animación desde el principio. (Correcciones del marco de trabajo de Android). -
Transition.Fade
ignora la versión Alfa inicial deView
(problema 221820 de AOSP)
Revisión 26.0.0 Alfa 1
(marzo de 2017)
Ten en cuenta que la revisión 26.0.0-alpha1 es una versión previa al lanzamiento. Su superficie de API está sujeta a cambios y no necesariamente incluye funciones o correcciones de errores de las últimas versiones estables de la biblioteca de compatibilidad.
Cambios importantes
Nota: La versión mínima del SDK aumentó a 14. Como resultado, muchas API que existían solo para la compatibilidad con API anteriores a 14 quedaron obsoletas. Los clientes de esas API deben migrar a sus equivalentes del marco de trabajo, como se indica en la página de referencia para cada API obsoleta.
- El módulo support-percent quedó obsoleto. Los clientes de este módulo deberían migrar al nuevo widget ConstraintLayout, que se proporciona como un artefacto separado en SDK Manager.
- El módulo support-fragment ya no depende del módulo support-media-compat.
API nuevas
Se agregaron muchos métodos, clases y constantes nuevos para proporcionar retrocompatibilidad con las API de plataforma agregadas en la vista previa de O.
IME_FLAG_NO_PERSONALIZED_LEARNING
: Los IME pueden escuchar las marcas "no learning" para las apps que tienen un modo privado, como los navegadores. Esta función ayuda a los IME a entender si una app está en modo privado. De esa forma, pueden inhabilitar su funcionalidad adaptativa o de aprendizaje mientras la app está en ese modo.
Para obtener una lista completa de los cambios de API entre 25.2.0 y 26.0.0-alpha1, consulta el informe de diferencias de API de la biblioteca de compatibilidad.
Correcciones de errores
- En algunos casos, la animación simple
AutoTransition
se puede interrumpir por los "saltos" de vistas. (Problema 221816 de AOSP)
Revisión 25.4.0
(junio de 2017)
Importante: Las bibliotecas de compatibilidad ahora están disponibles a través del repositorio Maven de Google. No es necesario que descargues el repositorio de compatibilidad de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.
Cambios importantes
- No se permiten
executePendingTransactions()
,commitNow()
,popBackStackImmediate()
y las llamadas de transacción similares durante los cambios de estadoFragmentManager
. La ejecución de reentrantes de transacciones no es segura yFragmentManager
ahora aplica esto durante los cambios de estado. - Simultáneamente con esta versión de la biblioteca de compatibilidad, también estamos lanzando versión 1.0.2 de multidex. En esta versión, se incluyen los siguientes cambios importantes:
- Permite el uso de multidex para el APK de instrumentación.
- MultiDexTestRunner deja de estar disponible (se debe usar AndroidJUnitRunner en su lugar).
- Proporciona una mejor protección contra la mala administración de extracción de archivos de la app.
- Corrige un error que podría ocasionar archivos temporales abandonados.
- Proporciona una instalación más rápida cuando se realiza en un proceso concurrente.
- Corrige un error de instalación en las API nivel 19 y nivel 20.
API nuevas y modificadas
Se admiten la transformación y la interpolación de rutas en AnimatedVectorDrawableCompat
. La transformación de rutas permite que las formas cambien de una ruta (especificada como android:valueFrom
) a otra (especificada como android:valueTo
) para proporcionar efectos visuales complejos y atractivos. La interpolación de rutas permite que los interpoladores de AnimatedVectorDrawableCompat
se especifiquen como rutas (especificadas como android:pathData
en el XML del interpolador).
Diferencias de API
Errores corregidos
- Excepción de puntero nulo durante la conexión a MediaBrowserServiceCompat
- La API de MediaBrowserCompat.search() no funciona (problema 262170 de AOSP)
- Devoluciones de llamada BrowseFragment onItemClback interrumpidas en 25.3.0
- NullPointerException mientras el usuario se desplaza hacia arriba y hacia abajo en VerticalGridView en 25.3.1
- ClassCastException en SimpleArrayMap.allocArrays()
Revisión 25.3.1
(marzo de 2017)
Errores corregidos
SwitchCompat
requiere una versión mínima del SDK de 14 o posterior. (Problema 251302 de AOSP)- El
updateListener
de animación basado en la física omite el primer marco. - La animación de la etiqueta
BottomNavigationView
no funciona.
Revisión 25.3.0
(marzo de 2017)
Cambios importantes
Los metadatos de la versión de la biblioteca de compatibilidad se agregarán automáticamente a AndroidManifest.xml
cuando se compile desde Gradle, lo que simplifica el seguimiento de las versiones en compilaciones públicas. Por ejemplo:
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
Elementos obsoletos
En esta versión, varios métodos y clases dejaron de estar disponibles. Estas API obsoletas se quitarán en una versión futura y los desarrolladores deberían migrar a otras. Para obtener más información sobre cómo migrar fuera de una API específica, consulta la documentación.
ExifInterface
- El método booleano
getLatLong(float[])
ya no está disponible. En su lugar, usa el nuevo métodogetLatLong()
, que no lleva argumentos y devuelvedouble[]
. mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
ya no está disponible. En su lugar, usa el nuevo métodosetErrorMessage(int, CharSequence)
, que recibe un código de error y una descripción opcional.EXTRA_SUGGESTION_KEYWORDS
ya no está disponible. En su lugar, usa la función de búsquedaMediaBrowserCompat
.v7.recyclerview
- El nombre de
LinearLayoutManager.getInitialItemPrefetchCount()
cambió aLinearLayoutManager.getInitialPrefetchItemCount()
. El nombre antiguo aún es compatible, pero se quitará en una versión futura.
API nuevas y modificadas
appcompat-v7
- El nuevo método
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
simplifica la inhabilitación de la animación del ícono para alternar el panel lateral de navegación. customtabs
- Se agregó compatibilidad para canales de mensajes. Para obtener más información, consulta la referencia
CustomTabsService.requestPostMessageChannel()
yCustomTabsService.postMessage()
. dynamic-animation
- Nueva biblioteca de animación basada en la física que proporciona un conjunto de API para desarrollar animaciones que reaccionan dinámicamente a las entradas del usuario.
leanback-v17
- Se agregó compatibilidad con fondos de paralaje. Para obtener más detalles, consulta la referencia
Parallax
. - Se agregó un widget
TimePicker
para seleccionar horarios en una interfaz de TV. mediacompat
- Se agregó funcionalidad de búsqueda. Para obtener más información, consulta la referencia
MediaBrowserCompat.search()
yMediaBrowserServiceCompat.onSearch()
. - Se agregó compatibilidad con los modos de reproducción aleatoria y repetición. Para obtener más información, consulta la referencia
MediaSessionCompat.setRepeatMode()
ysetShuffleModeEnabled()
.
Errores corregidos
StaggeredGridLayoutManager
arrojaIllegalArgumentException
(problema 230295 de AOSP)- La solicitud previa
RecyclerView
no controla correctamente unRecyclerView
que está adjunto, pero no en la pantalla. LinearLayout
no reconocido por Robolectric- Cuando se destruye
Activity
,onActivityCreated()
se invoca de manera incorrecta para sus fragmentos - El constructor
AppCompatImageView
provocaArrayIndexOutOfBoundsException
- Bajo rendimiento de la IU en la transición de actividad de
Call.Details
Revisión 25.2.0
(febrero de 2017)
Cambios importantes
Errores corregidos
- En esta versión, se corrige un problema grave de mediarouter en el que el uso de un dispositivo A2DP y las API de enrutamiento multimedia pueden hacer que el dispositivo deje de responder y requiera un reinicio.
- La clase
FragmentManager.FragmentLifecycleCallbacks
ahora es estática.
Errores corregidos
- Mostrar una presentación de diapositivas con la duplicación de pantalla hace que el dispositivo se desconecte de la red Wi-Fi
- El botón multimedia no manejó correctamente las apps de música que no se registraron con
setMediaButtonReceiver()
- Error
VectorDrawable
con recurso de string (problema 232407 de AOSP) TextInputLayout
superpone la sugerencia y el texto si el archivo XML establece el texto (problema 230171 de AOSP)- Pérdida de memoria
MediaControllerCompat
(problema 231441 de AOSP) - Falla de
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
RecyclerView
falla cuando se reciclan contenedores de vistas (problema 225762 de AOSP)getAllowGeneratedReplies()
muestra de manera incorrecta "false" para acciones en unWearableExtender
Revisión 25.1.1
(enero de 2017)
Importante: Hay un error conocido en la clase android.support.v7.media.MediaRouter
en las revisiones 25.1.1 y 25.1.0 de la biblioteca de compatibilidad. Si la app utiliza MediaRouter
de la versión 7, debes actualizar a la revisión 25.2.0 de la biblioteca de compatibilidad, que corrige este error.
Cambios importantes
-
Las transacciones de fragmento ahora se pueden optimizar dentro de las transacciones y entre ellas. La optimización de las operaciones de transacción de fragmentos puede quitar las operaciones que se cancelan. Por ejemplo, supongamos que se ejecutan dos transacciones juntas, una que agrega un fragmento A y otra que reemplaza el fragmento A por el B. En este caso, la primera operación podría cancelarse y solo podría agregarse el fragmento B. Eso significa que el fragmento A podría no pasar por el ciclo de vida de creación/destrucción.
Un efecto secundario de esta optimización es que los fragmentos pueden tener cambios de estado fuera del orden esperado. Por ejemplo, supongamos que una transacción agrega el fragmento A, una segunda agrega el fragmento B y una tercera quita el fragmento A. Sin la optimización, el fragmento B podría esperar que, mientras se crea, también exista el fragmento A porque el fragmento A se quitará después de que se agregue el fragmento B. Con la optimización, el fragmento B no puede estar seguro de que el fragmento A existirá mientras se está creando B, porque la optimización puede borrar la creación y la destrucción del fragmento A.
De manera predeterminada, esta optimización está inhabilitada. Para habilitar la optimización, llama a
FragmentTransaction.setAllowOptimization(true)
. - Ahora, los fragmentos pueden posponer sus transacciones y animaciones hasta que estén listas usando
Fragment.postponeEnterTransition()
yFragment.startPostponedEnterTransition()
. Esta API es similar aActivity.postponeEnterTransition()
yActivity.startPostponedEnterTransition()
cuando su uso se da con actividades de transacción.
Errores corregidos
MediaSessionCompatTest
falla conIllegalArgumentException
- No se llama a
DetailsFragment.installTitleView()
en 25.1.0 - La transacción de fragmentos conserva la vista fantasma al salir (problema 230679 de AOSP)
BottomNavigationView
requiere espacio entre el ícono del elemento y el texto (problema 230653 de AOSP)- Faltan objetos de escucha seleccionados en los
PlaybackFragment
yPlaybackSupportFragment
nuevos - El enfoque de
TextInputLayout
no cambia correctamente en el emulador de la versión 25.1.0 de la biblioteca de compatibilidad (problema 230461 de AOSP) - No se puede reemplazar el menú de una
BottomNavigationView
(problema 230343 de AOSP) RecyclerView
conStaggeredGridLayoutManager
falla con los elementos de intervalo completo (problema 230295 de AOSP)- Falla en
MediaSessionCompat
cuando se usasetCallback(null)
PlaybackGlueHostOld
yPlaybackSupportGlueHostOld
no notifican devoluciones de llamada cuando cambia la fila de reproducción- La
/test
de ejemplo dePlaybackOverlayFragment
no puede iniciar la reproducción RecyclerViewFocusRecoveryTest
falla en la API nivel 15- La fila "Capturas de pantalla" se enfoca en la parte superior de la pantalla
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
falla en la API nivel 15setActions()
enonSubactionClicked()
está dañadoRecyclerView
falla cuando se reciclan algunos contenedores de vistas
Revisión 25.1.0
(diciembre de 2016)
Importante: Hay un error conocido en la clase android.support.v7.media.MediaRouter
en las revisiones 25.1.1 y 25.1.0 de la biblioteca de compatibilidad. Si la app utiliza MediaRouter
de la versión 7, debes actualizar a la revisión 25.2.0 de la biblioteca de compatibilidad, que corrige este error.
Cambios importantes
- Los clientes de widgets
RecyclerView
anidados (por ejemplo, la lista de desplazamiento vertical de las listas de desplazamiento horizontal) pueden obtener importantes beneficios de rendimiento si indican a los administradores de diseño de los widgetsRecyclerView
internos cuántos elementos preparar antes de desplazarse en la pantalla. Llama aLinearLayoutManager.setInitialPrefetchItemCount(N)
, donde N es la cantidad de vistas visibles por elemento interno. Por ejemplo, si las listas horizontales internas muestran un mínimo de tres vistas y media de elementos a la vez, puedes mejorar el rendimiento llamando aLinearLayoutManager.setInitialPrefetchItemCount(4)
. De esa forma, permites queRecyclerView
cree todas las vistas relevantes de manera anticipada, mientras el objetoRecyclerView
externo se desplaza, lo que reduce considerablemente la inestabilidad durante los desplazamientos. FragmentActivity.setSupportMediaController()
yFragmentActivity.getSupportMediaController()
ya no están disponibles. Usa los nuevos métodos estáticosMediaControllerCompat.setMediaController()
yMediaControllerCompat.getMediaController()
.- Cuando un cliente especifica un tono de widget mediante el ajuste de tonos de appcompat (por ejemplo,
appcompat:buttonTint
), el cliente es responsable de proporcionar todos los estados necesarios (como "inhabilitado", "presionado", etc.). Eso es coherente con la forma en que los tonos de widget se especifican cuando se usan ajustes de tono del marco de trabajo.
API nuevas y modificadas
- Se agregó la biblioteca de compatibilidad ExifInterface. Esta biblioteca desagrupa compatibilidad para leer información Exif de archivos JPEG y archivos sin formato, y configurar la información Exif en archivos de imagen JPEG.
- Se refactorizó
Snackbar
para permitir que las apps muestren contenido personalizado.BaseTransientBottomBar
es la nueva clase base que expone el comportamiento general de animaciones y deslizamiento. - Se agregó un nuevo paquete leanback.media que contiene clases auxiliares para integrar reproductores multimedia en aplicaciones de Android TV.
- Se agregó
SeekBarPreference
con diseño y atributos personalizables a la biblioteca de compatibilidad de preferencias de la versión 7. - Se agregó la clase
ArraySet
a la biblioteca de compatibilidad de la versión 4. Esta clase corresponde a la claseArraySet
del marco de trabajo que se introdujo con el nivel de API 23. - Mejoras en la precarga de elementos de RecyclerView
RecyclerView
:- La precarga del
RecyclerView
anidado permite la precarga de contenido de unRecyclerView
dentro de otroRecyclerView
de desplazamiento, con API para controlar la cantidad de precarga que se realiza: - Se agregaron API para objetos
LayoutManager
personalizados a fin de implementar y permitir la precarga durante desplazamientos y gestos de arrastrar y soltar - Mejoras en la precarga para hacer solamente la mayor cantidad de trabajo de creación/vinculación posible en el tiempo entre marcos
- La precarga del
Errores corregidos
- La alternancia de visibilidad de contraseña falla en las pruebas de accesibilidad.
- Appcompat no respeta
state_enabled
en dispositivos con versiones anteriores a Android L. - Se agregó un mecanismo de recuperación de foco a
RecyclerView
. Esto también solucionó el foco dañado de los fragmentos pref de compatibilidad cuando se usa la navegación DPAD, como en los dispositivos Android TV. - Leanback: BrowseFragment falla con los encabezados inhabilitados y el adaptador vacío.
- Appcompat:
AlertDialog
es demasiado ancho. InputContentInfoCompat
llama arequestPermission()
cuando debería llamar areleasePermission()
.MediaBrowserCompat
falla.- CoordinatorLayout mide/implementa vistas cuando la visibilidad está configurada en
GONE
. - No se pudo ajustar el tono de
AnimatedVectorDrawableCompat
en el nivel de API inferior a 24 - La biblioteca Leanback activa errores falsos de lint
- La biblioteca de paletas provocó errores de prueba en todos los niveles de API
RecyclerView
falló en las pruebas en LeanbackRecyclerView
falla cuando se reciclan contenedores de vistas (problema 225762 de AOSP)Fragment.onDestroy()
no llamó al fragmento en la pila de actividades- La malla de
CollapsingToolbarLayout
no se dibuja cuando se contrae CoordinatorLayout.offsetChildByInset()
arrojaIllegalArgumentException
- Cuando se animan elementos
RecyclerView
, se separan losRecyclerView
internos para evitar precargas futuras - Los elementos
RecyclerView
adjuntos no pueden anidarse ni precargarse - Los datos de precarga para elementos
RecyclerView
anidados se descartan durante el primer diseño - La precarga de
RecyclerView
falla si dos eventos de arrastre llegan a la misma posición RecyclerView
debe diseñarse de manera especulativa mientras se procesa RenderThread- Los recursos de color de configuración nocturna convertidos en elementos de diseño no siempre se purgan correctamente de la caché de recursos
FloatingActionButton
: La configuración programática de BackgroundTintList no funciona correctamente (problema 227428 de AOSP)TextInputLayout
: No se está configurando el tipo de letra para ErrorView (problema 227803 de AOSP)TextInputLayout
siempre recurre al color de error claro por debajo de la API nivel 23 (problema 221992 de AOSP)FloatingActionButton
se muestra como presionado cuando el puntero sale
Puedes consultar una lista completa de las correcciones públicas de errores en el Seguimiento de problemas de AOSP.
Elementos obsoletos
En esta versión, varios métodos y clases dejaron de estar disponibles. Estas API obsoletas se quitarán en una versión futura y los desarrolladores deberían migrar a otras. Para obtener más información sobre cómo migrar fuera de una API específica, consulta su documentación.
-
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()
Revisión 25.0.1
(noviembre de 2016)
Errores corregidos
- La opción
TextInputLayout
de activar o desactivar la contraseña ahora está inhabilitada de forma predeterminada para evitar sobrescribir innecesariamente los elementos de diseño final especificados por el desarrollador. Se puede habilitar de forma manual por medio del atributo XML depasswordToggleEnabled
. - Los elementos
BottomNavigationView
ahora tienen una sola línea para coincidir con la especificación de materiales. RecyclerView
falla durante la precarga si el administrador de diseño es nulo.- La elevación de
BottomNavigationView
ahora está configurada correctamente. (Problema 226182 de AOSP) BottomNavigationView
falla cuando se agregan elementos de menú de manera programática. (Problema 225731 de AOSP)- Se corrigió para elementos de diseño compuesto de izquierda y derecha de
TextInputLayout
. (Problema 225836 de AOSP) RecyclerView
falla cuando se reciclan los contenedores de vistas. (Problema 225762 de AOSP)- Leanback: Con frecuencia, TalkBack dice la palabra "null" en las vistas de pantalla dividida.
RecyclerView
: Problemas de procesamiento en Android Studio. (Problema 225753 de AOSP)BottomNavigationView
sigue mostrando el elemento de menú como seleccionado después de queonNavigationItemSelected()
muestra "false". (Problema 225898 de AOSP)- ForwardingListener arroja
NoSuchMethodError
. (Problema 225647 de AOSP) TextInputEditText
no muestra sugerencias en el modo de extracción IME. (Problema 221880 de AOSP)
Puedes consultar una lista completa de las correcciones públicas de errores en el Seguimiento de problemas de AOSP.
Revisión 25.0.0
(octubre de 2016)
Cambios importantes
- El constructor
ContextCompat
se protegió. No se debe crear una instancia pública de esta clase, pero es posible que la amplíen las bibliotecas de compatibilidad que se orienten a niveles de API más nuevos. - El constructor
ActivityCompat
se protegió. No se debe crear una instancia pública de esta clase, pero es posible que la amplíen las bibliotecas de compatibilidad que se orienten a niveles de API más nuevos. getReferrer(Activity)
se hizo estático.-
Se quitó
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
. Se deben quitar todas las implementaciones cliente de este método. -
Se quitó
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
. Los usos deben reemplazarse por el método con nombre más apropiadofromMediaSession()
. -
Se quitó
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
. Los usos deben reemplazarse con el método con nombre más apropiadoMediaSessionCompat.QueueItem#fromQueueItem
. -
Se quitó
android.support.v7.widget.Space
. Los usos deben reemplazarse conandroid.support.v4.widget.Space
.
API nuevas
- La clase
android.support.design.widget.BottomNavigationView
implementa el patrón de navegación inferior de la especificación de Material Design. - El paquete
android.support.v13.view.inputmethod
nuevo incluye clases para acceder a funcionesandroid.view.inputmethod.InputConnection
introducidas después de la API nivel 23. - La clase
android.v7.widget.RecyclerView.DividerItemDecoration
proporciona una implementación básica para divisores horizontales o verticales entre elementos. - Nuevos estilos decorados en
android.support.v7.app.NotificationCompat
,DecoratedCustomViewStyle
yDecoratedMediaCustomViewStyle
, se agregaron clases espejo en la plataforma de API 24.
Errores corregidos
Puedes consultar una lista completa de las correcciones públicas de errores en el Seguimiento de problemas de AOSP.
Revisión 24.2.1
(septiembre de 2016)
Errores corregidos:
FloatingActionButton
ya no se puede anclar a elementos secundarios indirectos deCoordinatorLayout
. (Problema 220250 de AOSP)- La imagen dentro de
CollapsingToolbarLayout
no se ajusta correctamente confitsSystemWindows=true
. (Problema 220389 de AOSP) CoordinatorLayout
arrojaIndexOutOfBoundsException
cuando se muestra y se descartaSnackbar
. (Problema 220762 de AOSP)TextInputLayout
no puede resolver el error de color del texto. (Problema 220305 de AOSP)BatchedCallback.onMoved()
llama aBatchedCallback.onInserted()
. (Problema 220309 de AOSP)TextInputLayout
anula el elemento de diseño compuesto derecho. (Problema 220728 de AOSP)
Puedes consultar una lista completa de las correcciones públicas de errores en el Seguimiento de problemas de AOSP.
Revisión 24.2.0
agosto de 2016
La versión 24.2.0 incluye los siguientes cambios:
- División de la biblioteca de compatibilidad de la versión 4
- Actualizaciones de API
- Cambios en el comportamiento
- Elementos obsoletos
- Correcciones de errores
Nota: En la versión 24.2.0, se quita la compatibilidad con Android 2.2 (API nivel 8) y versiones anteriores. Las clases y los métodos que existen solo para funcionar con esas versiones del sistema ahora están marcados como obsoletos y ya no deberían usarse. Es posible que se quiten esos métodos y clases obsoletos en una versión futura.
División de la biblioteca de compatibilidad de la versión 4
En esta versión, se divide la biblioteca de compatibilidad de la versión 4 en varios módulos más pequeños:
-
support-compat
- Proporciona wrappers de compatibilidad para las nuevas API de marco de trabajo, como
Context.getDrawable()
yView.performAccessibilityAction()
. -
support-core-utils
- Proporciona una serie de clases de utilidad, como
AsyncTaskLoader
yPermissionChecker
. -
support-core-ui
- Implementa una variedad de componentes relacionados con la IU, como
ViewPager
,NestedScrollView
yExploreByTouchHelper
. -
support-media-compat
- Es un backport del marco de trabajo de multimedia, incluidos
MediaBrowser
yMediaSession
. -
support-fragment
- Es un backport del marco de trabajo de fragmentos. Este módulo tiene dependencias de
support-compat
,support-core-utils
,support-core-ui
ysupport-media-compat
.
Para tener retrocompatibilidad, si incluyes support-v4
en la secuencia de comandos Gradle, tu APK incluirá todos esos módulos. Sin embargo, a fin de reducir el tamaño del APK, te recomendamos que solo enumeres los módulos específicos que necesita tu app.
Actualizaciones de API
- Los clientes que usan pestañas personalizadas pueden controlar si las apps instantáneas deben abrirse o no. (Ten en cuenta que las apps instantáneas aún no están disponibles de manera general). Para habilitar o inhabilitar las apps instantáneas, llama a
CustomTabsIntent.Builder.setInstantAppsEnabled()
o especificaEXTRA_ENABLE_INSTANT_APPS
. De forma predeterminada, las pestañas personalizadas habilitarán las apps instantáneas cuando esa característica esté disponible. TextInputLayout
agrega compatibilidad para la alternancia de visibilidad de contraseña de la especificación de Material Design.- El nuevo paquete
android.support.transition
adapta el marco de trabajo de Transiciones para API nivel 14 y versiones posteriores. Para obtener más información, consulta la referenciaandroid.support.transition
. - La biblioteca de compatibilidad de Pestañas personalizadas agrega compatibilidad para usar
RemoteViews
en la barra de herramientas secundaria. El método existentesetToolbarItem()
ya no está disponible. AppCompatResources
agrega la capacidad de cargar un<vector>
(en la API nivel 9 y versiones posteriores) o<animated-vector>
(en la API nivel 11 y versiones posteriores) desde un ID de recurso usando el nuevo métodogetDrawable()
.CoordinatorLayout
ahora admite definir vistas en recuadro y especificar que otras vistas deben esquivar las vistas en recuadro. Esto permite que las apps reproduzcan patrones de comportamiento similares a la forma en que se apartaFloatingActionButton
deSnackbar
, pero para cualquier vista secundaria arbitraria. Para obtener más información, consulta la documentación de referenciaLayoutParams.insetEdge
yLayoutParams.dodgeInsetEdges
.- La nueva clase
DiffUtil
puede calcular la diferencia entre dos colecciones y puede despachar una lista de operaciones de actualización que sean aptas para el consumo de unRecyclerView.Adapter
. -
Se agregó
RecyclerView.OnFlingListener
para admitir comportamientos personalizados en respuesta a lanzamientos. La claseSnapHelper
proporciona una implementación específica para ajustar vistas secundarias, y la claseLinearSnapHelper
extiende esa implementación para proporcionar un comportamiento de ajuste centrado similar aViewPager
. - La biblioteca de pestañas personalizadas ahora permite a los clientes solicitar la IU estándar del navegador, en lugar de la IU de pestañas personalizadas, llamando a
CustomTabsIntent.setAlwaysUseBrowserUI()
. Este comportamiento es útil en los casos en que el navegador usa de forma predeterminada la IU de pestañas personalizadas, pero el usuario indicó una preferencia por la IU estándar del navegador.
Cambios en el comportamiento
- Si usas la funcionalidad diurna/nocturna de la biblioteca de appcompat, el sistema ahora volverá a crear tu actividad automáticamente cuando cambie el modo diurno/nocturno (ya sea por la hora del día o por una llamada a
AppCompatDelegate.setLocalNightMode()
). Snackbar
ahora dibuja detrás de la barra de navegación si la barra de estado es translúcida.
Biblioteca MediaRouter
Los dispositivos Bluetooth ya no aparecen como rutas de medios. El enrutamiento de audio a dispositivos Bluetooth ahora se controla únicamente en el nivel del sistema Android.
Elementos obsoletos
Las clases y los métodos obsoletos están sujetos a eliminación en una versión futura. Debes dejar de usar estas API lo antes posible.
- Varios métodos en las siguientes clases solo se requerían para la API nivel 8 y versiones anteriores, y ya no deberían usarse. En su lugar, usa las implementaciones del marco de trabajo.
android.support.v4.view.KeyEventCompat
: Reemplaza conKeyEvent
android.support.v4.view.MotionEventCompat
: UsaMotionEvent
android.support.v4.view.ViewCompat
: UsaView
android.support.v4.view.ViewConfigurationCompat
: UsaViewConfiguration
AccessibilityServiceInfoCompat.getDescription()
dejó de estar disponible a favor deAccessibilityServiceInfoCompat.loadDescription()
, que devuelve una descripción localizada correctamente.- No debes crear una instancia de la clase
ActivityCompat
directamente. El métodogetReferrer(Activity)
no estático se convertirá en estático en una versión futura. CoordinatorLayout.Behavior.isDirty()
dejó de estar disponible yCoordinatorLayout
ya no lo invoca. Se deben quitar todas las implementaciones, así como cualquier llamada a este método.MediaSessionCompat.obtain()
dejó de estar disponible y se reemplazó por el métodofromMediaSession()
, que tiene un nombre más apropiado.MediaSessionCompat.QueueItem.obtain()
dejó de estar disponible y se reemplazó por el métodofromQueueItem()
, que tiene un nombre más apropiado.- Varias clases abstractas dejaron de estar disponibles y se reemplazaron por interfaces que reflejan con más precisión sus equivalentes de marco de trabajo.
AccessibilityStateChangeListenerCompat
se reemplazó por la interfazAccessibilityManagerCompat.AccessibilityStateChangeListener
.OnCloseListenerCompat
se reemplazó por la interfazSearchViewCompat.OnCloseListener
.OnQueryTextListenerCompat
se reemplazó por la interfazSearchViewCompat.OnQueryTextListener
.
CustomTabsSession.setToolbarItem()
dejó de estar disponible y se reemplazó porsetSecondaryToolbarViews()
basado en RemoteViews.
Correcciones de errores
En la versión 24.2.0, se corrigieron los siguientes problemas conocidos:
- Asegúrate de que se muestre el indicador
SwipeRefreshLayout
cuando se llame asetRefreshing(true)
antes del primer pase de medición (problema 77712 de AOSP) - Evita que
TabLayout
parpadee cuando se cambie de página (problema 180454 de AOSP) - Evita
ClassNotFoundException
para desalinearSavedState
en API nivel 11 o versiones anteriores (problema 196430 de AOSP)
Puedes consultar una lista completa de las correcciones públicas de errores en el Seguimiento de problemas de AOSP.
Revisión 24.1.1
julio de 2016
Errores corregidos:
- En la versión 24.1.0, se soluciona un problema que afectaba a los ID de recursos compartidos entre las bibliotecas de compatibilidad. Este problema hizo que las apps que dependían de bibliotecas de compatibilidad con recursos (como diseño y appcompat) tuvieran problemas causados por discrepancias de ID de recursos.
Revisión 24.1.0
julio de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
NotificationCompat.Action.WearableExtender
tiene nuevos métodosgetHintDisplayActionInline()
ysetHintDisplayActionInline()
para la compatibilidad con la vista previa de Android Wear 2.0. Estos métodos permiten que una aplicación especifique que una acción debe mostrarse intercalada con la notificación.- Llamar a
Fragment.setUserVisbileHint()
ya no iniciará un fragmento si la sugerencia se agregó a unFragmentTransaction
que aún no se confirmó. Esto afecta a los usuarios deFragmentPagerAdapter
que anulansetUserVisbileHint()
y asumen un estado de ciclo de vida específico del fragmento después de llamar asuper.setUserVisibleHint()
. Para obtener más información, consulta la página de referencia de los documentos deFragment.setUserVisbileHint()
.
Errores corregidos:
- TabLayout.setCustomView(null) genera NullPointerException (problema 214753 de AOSP)
- TabLayout destaca de forma incorrecta las pestañas personalizadas (problema 214316 de AOSP).
- AppCompatTextHelper utiliza una matriz de atributos ordenada incorrectamente ( problema 214366 de AOSP)
- No se puede hacer referencia a VectorDrawable desde el archivo XML de contenedor de elementos de diseño cuando se usa ContextWrapper personalizado (problema 214055 de AOSP)
- ViewDragHelper.saveLastMotion() arroja ArrayIndexOutOfBoundsException ( problema 212945 de AOSP)
- BottomSheetBehavior se expande a la altura de contenido anterior cuando se usa setState(STATE_EXPANDED) (problema 213660 de AOSP)
- CollapsingToolbarLayout no administra los elementos que se pueden marcar con los márgenes superior e inferior (problema 213001 de AOSP).
- El título de exploración Leanback no es compatible con la alineación RTL (problema 213461 de AOSP)
- PagerTabStrip desaparece porque falta la anotación heredada (problema 213359 de AOSP)
- La vinculación de datos genera NullPointerException cuando se usa un booleano para establecer marcas condicionales (problema 191841 de AOSP)
- CoordinatorLayout no responde a setFitsSystemWindows() (problema 212720 de AOSP)
- BottomSheetBehavior falla cuando se configura el estado inicial (problema 203114 de AOSP)
- ViewPager omite páginas si el índice de páginas es un valor grande (problema 211734 de AOSP)
- BottomSheetBehavior no funciona con diseños dinámicos (problema 205226 de AOSP)
Revisión 24.0.0
junio de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
Fragment.commitNow()
para la confirmación síncrona. - Se agregó
NotificationCompat.MessagingStyle
para las conversaciones entre varias partes. - Se agregaron
NotificationManagerCompat.areNotificationsEnabled()
ygetImportance()
MediaSessionCompat
ahora refleja la funcionalidad deMediaSession
y ya no llama asetMediaButtonReceiver()
automáticamente.
Nota: Solo
MediaBrowserServiceCompat
en la versión 24.0.0 es compatible con versiones futuras de Android más allá de la API nivel 24. Si usas versiones posteriores, actualiza a esta versión para garantizar la compatibilidad. - Se agregó
- En la biblioteca appcompat de la versión 7:
-
- Se agregó compatibilidad con objetos
ColorStateList
temáticos de XML
- Se agregó compatibilidad con objetos
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Mejoras en el manejo de
AppBarLayout
de elevación usandoStateListAnimator
- Mejoras en el manejo de
- Cambios en la biblioteca Leanback de la versión 17:
-
- Se agregó
OnboardingFragment
para proporcionar flujo de bienvenida de primera ejecución y configuración
- Se agregó
- Cambios para las pestañas personalizadas:
-
- Se agregó compatibilidad para proporcionar una jerarquía de
RemoteViews
en la barra de herramientas secundaria - Se agregó
CustomTabsClient.connectAndInitialize()
para la preparación de una línea
- Se agregó compatibilidad para proporcionar una jerarquía de
Revisión 23.4.0
mayo de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se solucionó el problema por el cual se agregaban fragmentos en el orden incorrecto (Problema 206901)
- Se solucionó el problema por el que la barra de la app no se dibujaba después de que el usuario la desplazaba fuera de la pantalla. (Problema 178037)
- En la biblioteca appcompat de la versión 7:
-
- Se agregó el método
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
para volver a habilitar el uso de elementos de diseño de vectores en objetosDrawableContainer
en dispositivos que ejecutan Android 4.4 (API nivel 19) y versiones anteriores. Consulta AppCompat versión 23.2: la era de los vectores para obtener más información. - Se solucionó un problema de la API nivel 23 por el que
AppCompatDelegate.setDefaultNightMode()
no cargaba correctamente los recursos en la API nivel 23. (Problema 206573) - Se corrigió el error que podía provocar
NullPointerException
. (Problema 207638)
- Se agregó el método
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se solucionó un problema en el que
TextInputLayout
no borraba el tono de error después desetErrorEnabled(false)
en la API nivel 21 y nivel 22 (problema 202829) - Se solucionó un problema en el que
FloatingActionButton
no mostraba resultados cuando las animaciones estaban inhabilitadas. (Problema 206416) - Se solucionó un problema en la funcionalidad de ajustes de
AppBarLayout
cuando se usaba con marcas de desplazamiento
. (Problema 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- Se solucionó un problema en el que
- Cambios de la biblioteca de elementos de diseño de vectores:
-
- Se corrigió un error por el cual
VectorDrawableCompat
no se procesaba correctamente enTextView
en la API nivel 23. (Problema 206227)
- Se corrigió un error por el cual
Revisión 23.3.0
abril de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
AppLaunchChecker
para ayudar a hacer un seguimiento de cómo el usuario inició la app en el pasado.hasStartedFromLauncher()
te informa si el usuario inició tu app desde la pantalla principal anteriormente o si solo se inició por otros medios (por ejemplo, para ver URL web específicas). - Se corrigió una filtración de memoria en
MediaBrowserServiceCompat.mConnections
. (Problema 205220) - Se solucionó un problema en el que
ViewPager
no tenía en cuenta los márgenes de la página cuando se daba vuelta la página. (Problema 203816) Fragment.onRequestPermissionsResult()
ahora se publica en fragmentos secundarios.
- Se agregó
- En la biblioteca appcompat de la versión 7:
-
- Se solucionó un problema en
AppCompatSpinner
que podía hacer que aparecieran múltiples ventanas emergentes. (Problema 205052) - Se corrigió un error en el color de los botones sin borde. (Problema 202967)
- Se solucionó un problema de compatibilidad entre
AppCompatDialogFragment
yAlertDialog
. (Problema 204805) - Se revirtieron cambios a
TintResources
que estaban provocando problemas de memoria y configuración. (Problema 205236)
- Se solucionó un problema en
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se corrigió el comportamiento del control deslizante de volumen de
MediaRouteControllerDialog
. (Problema 202299)
- Se corrigió el comportamiento del control deslizante de volumen de
- Cambios para la biblioteca de preferencias de la versión 7:
-
- Se solucionó el problema por el que
PreferenceFragmentCompat
fallaba si se especificabadividerHeight
. (Problema 204778)
- Se solucionó el problema por el que
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se corrigió un error en el que
RecyclerView
no invocaba las devoluciones de llamada de desplazamiento si se reducía el rango de elementos visibles. (Problema 200987) - Se corrigió un error en el que
RecyclerView
se bloqueaba si estaba en formato lineal, se ponderaba y contenía imágenes. (Problema 203276) - Se corrigió una falla en
OrientationHelper.getStartAfterPadding()
. (Problema 180521) - Se solucionó una falla con los usos de
android:nestedScrollingEnabled
. (Problema 197932)
- Se corrigió un error en el que
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se corrigió un error por el cual una hoja inferior oculta manejaba eventos táctiles. (Problema 203654)
- Se solucionó un problema de diseño con
BottomSheetBehavior
cuandofitsSystemWindows
es verdadero. (Problema 203057) - Se solucionó un problema de accesibilidad con
Snackbar
. (Problema 182145) - Se solucionó una falla al deslizar
Snackbar
. (Problema 203924) - Se corrigió un error en
AppBarLayout
conenterAlways
. (Problema 203661) - Se corrigió un error donde
TextInputLayout
borra innecesariamente el filtro de color de fondo del objetoEditText
. (Problema 203357)
Revisión 23.2.1
marzo de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se corrigió una excepción en
DrawableCompat.wrap()
yLayerDrawable
en la API nivel 17 a nivel 19. (Problema 201817) - Se corrigió un
ArrayIndexOutOfBoundsException
enViewDragHelper.shouldInterceptTouchEvent()
. (Problema 182262) - Se corrigió un error en
ViewPager
relacionado con el cálculo de desplazamiento para los cambios de tamaño. - Se corrigió un
NullPointerException
que ocurría cuando se llamaba aDrawerLayout.removeDrawerListener()
sin un conjuntoDrawerLayout.DrawerListener
. (Problema 202478) - Se corrigió un error en el que
ViewPager
no establecía parámetros deAccessibilityEvent
correctamente cuando durante el desplazamiento. - Se solucionó un problema que causaba un retraso durante la rotación del dispositivo cuando se usa
Drawable.wrap()
. (Problema 201924)
- Se corrigió una excepción en
- En la biblioteca appcompat de la versión 7:
-
- Se revirtió la dependencia de los elementos vectoriales para que los desarrolladores que usan la biblioteca appcompat no se vean obligados a usar
VectorDrawable
y los indicadores de compilación asociados. - Se corrigió un problema de compatibilidad con el Modo nocturno y la API nivel 23. (Problema 201910)
- Se solucionó un problema de compatibilidad con
SwitchCompat
y la API nivel 7. (Problema 201942) - Se solucionó un problema con la propagación de los valores de configuración en los objetos de recursos Problema 201928
- Se corrigió un problema de compatibilidad en el que el botón de cancelación de
android.support.v7.app.NotificationCompat.MediaStyle
se volvía invisible en la API nivel 21 o versiones anteriores. (Problema 202156) - Se corrigió una falla de compatibilidad con
AppCompatSpinner
en la API nivel 21 o versiones anteriores. (Problema 202246) - Se solucionó un problema por el cual el estilo
app:textAllCaps = "false"
no funcionaba. (Problema 202117) - Se corrigió una falla durante el restablecimiento de
SearchView
. (Problema 201836) - Se corrigió una filtración de memoria que se producía cuando se ajustaba el tono de los elementos de diseño mediante AppCompat. (Problema 202379)
- Se solucionó un problema con
KeyEvent
en la API nivel 11 y en versiones anteriores. (Problema 202939)
- Se revirtió la dependencia de los elementos vectoriales para que los desarrolladores que usan la biblioteca appcompat no se vean obligados a usar
- Cambios para la biblioteca cardview de la versión 7:
-
- Se agregó compatibilidad con el Modo nocturno para
CardView
. (Problema 194497)
- Se agregó compatibilidad con el Modo nocturno para
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se corrigieron errores relacionados con varios métodos de measure-spec. (Problema 201856)
- Se redujo el período de bloqueo en el que
RecyclerView
no permite los cambios del adaptador mientras se calcula un diseño o desplazamiento. (Problema 202046) - Se solucionó una falla cuando se llamaba a
notifyItemChanged()
en un elemento que estaba desactivado. (Problema 202136) - Se corrigió una falla que se producía cuando
RecyclerView.LayoutManager
agregaba y quitaba una vista en el mismo pase de medición. (Problema 193958)
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se solucionó una falla que se producía cuando se llamaba a
MediaRouter.getInstance()
en la API nivel 17. (Problema 180654)
- Se solucionó una falla que se producía cuando se llamaba a
- Cambios en la biblioteca Leanback versión 17:
-
- Se solucionó un problema con
GridLayout.onAddFocusables()
que causaba la selección del elemento incorrecto. - Se solucionó el problema con las acciones de
GuidedStepFragment
que desaparecían después de contraer una acción.
- Se solucionó un problema con
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se corrigió una falla de
TabLayout
causada por la agrupación de pestañas. (Problema 201827) - Se corrigió un error en
NavigationView
que causaba que se seleccionara el color incorrecto. (Problema 201951) - Se corrigió un error en el que
setBackgroundTintList()
ya no podía cambiar el color del fondo. (Problema 201873) - Se solucionó un problema en el que
AppBarLayout
no podía desplazarse fuera de la vista cuando se usaba conandroid:fitsSystemWindows = “true”
. (Problema 201822) - Se solucionó un problema por el cual
BottomSheetDialog
no mostraba vistas cortas de contenido correctamente. (Problema 201793) - Se solucionó un problema en el que se movía de forma esporádica
BottomSheetDialogFragment
cuando se cambiaba el contenido del interior. (Problema 202125) - Se solucionó una falla en el vínculo del contador TextInputLayout.
- Se corrigió una falla que ocurría cuando
TextInputLayout.getCounterMaxLength()
restablecía un estado guardado. (Problema 202375) - Se corrigió un
ClassCastException
que ocurría cuando se restablecía unCoordinatorLayout
usando el estado guardado de una vista que no era unCoordinatorLayout
.
- Se corrigió una falla de
- Cambios para VectorDrawableCompat:
-
- Se corrigió un error en el que se leía la variable incorrecta para
android:tintMode
. (Problema 201907)
- Se corrigió un error en el que se leía la variable incorrecta para
Revisión 23.2.0
febrero de 2016
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
MediaBrowserCompat
para compatibilidad conMediaBrowser
yMediaBrowserServiceCompat
para compatibilidad conMediaBrowserService
. Esto es útil cuando se conecta el servicio en segundo plano de una app de música con componentes de IU y se integra con Android Auto y Android Wear sin requerir la API nivel 21 o versiones posteriores. - El sistema ahora llama a
onActivityResult()
para unFragmentActivity
anidado.
- Se agregó
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó la funcionalidad del Modo nocturno a la API nivel 14 y versiones posteriores. Cambia entre los temas de material claro y material oscuro según la hora del día o la configuración específica de la app.
-
- Los temas diurno y nocturno se pueden encontrar aquí:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
AppCompatDelegate.setDefaultNightMode()
: Establece el modo predeterminado de la app pasando una de las siguientes constantes:-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
: Anula la configuración del modo nocturno para el componente de app local.AppCompatDelegate.getDefaultNightMode()
: Muestra el modo nocturno predeterminado.
- Los temas diurno y nocturno se pueden encontrar aquí:
- Cambios en la biblioteca de mediarouter de la versión 7:
-
MediaRouteControllerDialog
ahora aplica correctamente los colores del tema de la app personalizados.
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se agregó compatibilidad para las hojas inferiores. Un complemento de interacción,
BottomSheetBehavior
, permite que una vista secundaria de unCoordinatorLayout
funcione como hoja inferior. La clase base,BottomSheetCallback
, proporciona devoluciones de llamadas para supervisar eventos de hojas inferiores.
- Se agregó compatibilidad para las hojas inferiores. Un complemento de interacción,
- Cambios para la biblioteca de compatibilidad de CustomTabs:
-
- Las pestañas personalizadas de Chrome ahora permiten que las apps incluyan una barra inferior con botones de acción, además del botón de acción superior existente.
CustomTabsIntent.Builder.addToolBarItem()
: Agrega un botón de acción en una pestaña personalizada. Puedes usar esta opción para agregar varios botones.CustomTabsSession.setToolBarItem()
: Actualiza las imágenes para los elementos de la barra de herramientas. Este método solo funcionará de manera correcta si se le da un id válido y la sesión del navegador está en primer plano.
- Se agregó la biblioteca de compatibilidad de VectorDrawable:
-
- Clases agregadas:
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- Se agregó compatibilidad para los elementos
VectorDrawable
en las apps que ejecutan API nivel 7 o versiones posteriores. También se admiten los elementosAnimatedVectorDrawable
en API nivel 11 o versiones posteriores. Los elementos vectoriales pueden ser mucho más pequeños que los elementos de imágenes y deberían ayudar a disminuir el tamaño de la app, ya que reducen la cantidad de elementos necesarios para admitir varias pantallas de dispositivos. - Ahora, esta biblioteca es una dependencia de la biblioteca de AppCompat de la versión 7, lo que permite que los desarrolladores y AppCompat usen con facilidad elementos de diseño vectoriales. Para usar
VectorDrawableCompat
en unImageButton
oImageView
, usa el atributo XMLapp:srcCompat
o el métodosetImageResource()
. - Para seguir haciendo referencia a ID de atributos en API nivel 20 o versiones anteriores, agrega la siguiente marca
appt
a tu archivobuild,gradle
: -
- Si estás compilando con el complemento de Android para Gradle 1.5.0 o versiones anteriores, agrega lo siguiente al archivo
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 estás compilando con el complemento de Android para Gradle 2.0.0 o una versión posterior, agrega lo siguiente al archivo
build.gradle
: -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- Si estás compilando con el complemento de Android para Gradle 1.5.0 o versiones anteriores, agrega lo siguiente al archivo
- Cambios en la biblioteca Leanback de la versión 17:
-
- Se agregaron nuevas funciones a
GuidedStepFragment
, que es un componente que guía a los usuarios en una decisión o una serie de decisiones: -
- Se agregaron acciones de botones a
GuidedAction
: GuidedStepFragment.setButtonActions()
: Establece una lista de botonesGuidedAction
que el usuario puede seleccionar en la vista Acciones.- Los campos de descripción ahora son editables:
-
GuidedAction.Builder.descriptionEditable()
: Cuando se pasatrue
, establece que la descripción de la acción sea editable.GuidedAction.getEditDescription()
: Muestra la descripción editable como unCharSequence
.
- Se agregaron listas desplegables de subacciones:
-
GuidedAction.setSubActions()
: Establece una lista deGuidedAction
como un menú desplegable de subacciones.
- Se agregaron acciones de botones a
- Se agregó el widget
GuidedDatePickerAction
para la funcionalidadDatePicker
: -
- La fecha se selecciona mediante columnas de año, mes y día, y tiene un rango personalizable.
GuidedDatePickerAction.Builder
: Clase compiladora para el objetoGuidedDatePickerAction
.GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
: Establece el formato de fecha deseado pasando elString
de los tres caracteres apropiados, por ejemplo,“YMD”
o“MDY”
. También puedes usar el atributo XMLdatePickerFormat
.
- Se agregaron nuevas funciones a
- Cambios en la biblioteca de recyclerview de la versión 7:
-
RecyclerView
ahora tiene una función de participación denominada AutoMeasure que permite queRecyclerView.LayoutManager
agrupe fácilmente el contenido o maneje distintas especificaciones de medición proporcionadas por el elemento superior deRecyclerView
. Es compatible con todas las capacidades de animación existentes deRecyclerView
.-
- Si tienes un
RecyclerView.LayoutManager
personalizado, llama asetAutoMeasureEnabled(true)
para comenzar a usar la nueva API de AutoMeasure. Todos los objetos incorporados deRecyclerView.LayoutManager
permiten la medición automática de forma predeterminada. RecyclerView.LayoutManager
ya no ignora algunas configuraciones deRecyclerView.LayoutParams
, comoMATCH_PARENT
en la dirección de desplazamiento.Nota: Estas restricciones que se quitaron pueden causar un comportamiento inesperado en tus diseños. Asegúrate de especificar los parámetros de diseño correctos.
- Si tienes un
- Cuando actualizas un
RecyclerView.ViewHolder
con información de carga útil,DefaultItemAnimator
ahora inhabilita las animaciones de cambio. - Ahora puedes modificar la velocidad de escape de
ItemTouchHelper
para controlar la sensibilidad de deslizamiento. Para facilitar o dificultar el deslizamiento, anulagetSwipeEscapeVelocity(float defaultValue)
y modificadefaultValue
.
Revisión 23.1.1
noviembre de 2015
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se corrigió una falla que se produce cuando realizas una acción de deslizar para descartar que proporciona la clase de utilidad
ItemTouchHelper
y, luego, agregas un elemento. (Problema 190500)
- Se corrigió una falla que se produce cuando realizas una acción de deslizar para descartar que proporciona la clase de utilidad
- Cambios para la biblioteca de preferencias de la versión 7:
-
- Se solucionó un problema con el uso de ProGuard. (Problema 183261)
- Cambios en la biblioteca de compatibilidad de Leanback de la versión 17:
-
- Se corrigió una serie de problemas internos en esta biblioteca.
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se agregó el método
getHeaderView
a la claseNavigationView
. - Se solucionó un problema de fondo transparente para un objeto
FloatingActionButton
en dispositivos con Android 4.0 (API nivel 15) o versiones anteriores. (Problema 183315)
- Se agregó el método
Revisión 23.1.0
octubre de 2015
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó compatibilidad con la interfaz
OnScrollChangedListener
al widgetNestedScrollView
. Permite recibir devoluciones de llamada cuando cambian las posiciones de desplazamiento X o Y. - Se agregó una clase
MediaButtonReceiver
para reenviar los controles de reproducción recibidos a un servicio que administra la claseMediaSessionCompat
. La claseMediaSessionCompat
tiene un constructor que puede encontrar automáticamente un receptor de botón multimedia en el manifiesto. Un receptor de botón multimedia es un elemento clave para manejar los controles de reproducción desde los controles de hardware o bluetooth.
- Se agregó compatibilidad con la interfaz
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregaron widgets
Seekbar
yImageButton
de Material Design. - Se actualizó el widget
ImageView
para admitir la función de ajuste de tono. - Se actualizó el aspecto del widget
SwitchCompat
.
- Se agregaron widgets
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se agregaron las siguientes características a la clase
MediaRouteChooserDialog
: - Muestra una página de carga mientras se descubren proveedores de rutas de medios.
- Incluye un ícono de tipo de dispositivo para facilitar la identificación del dispositivo.
- Ordena las rutas según la frecuencia de uso en la app actual.
- Admite el modo de paisaje.
- Se agregaron las siguientes características a la clase
MediaRouteControllerDialog
: - Reconoce la transmisión de pantalla y proporciona una descripción adecuada.
- Admite distintos tamaños y proporciones de imágenes de álbum, y las carga de manera asíncrona.
- Selecciona automáticamente el color del contenido en función del color principal de la app.
- Ajusta el diseño del cuadro de diálogo en función del espacio disponible en la pantalla del dispositivo.
- Admite el modo de paisaje.
- Se agregaron las siguientes características a la clase
- Cambios en la biblioteca de paletas de la versión 7:
-
- Se agregó el método
setRegion()
para admitir la extracción de color de una región específica de un objetoBitmap
.
- Se agregó el método
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se agregó una API de animación mejorada a la clase
ItemAnimator
para mejores personalizaciones: - Las animaciones de cambio ya no aplican dos copias del objeto
ViewHolder
, lo que permite las animaciones de contenido de elementos. Además, el objetoItemAnimator
decide si quiere volver a usar el mismo objetoViewHolder
o crear uno nuevo. - La nueva API de registro de información brinda a la clase
ItemAnimator
la flexibilidad para recopilar datos en el punto correcto del ciclo de vida del diseño. Luego, esa información se pasa a las devoluciones de llamada de animación.
- Se proporcionó un plan de transición sencillo para este cambio de API incompatible con versiones anteriores:
- Si ya extendiste la clase
ItemAnimator
, puedes cambiar la clase base aSimpleItemAnimator
y el código debería funcionar como antes. La claseSimpleItemAnimator
proporciona la API anterior mediante la agrupación de la API nueva. - Se quitaron algunos métodos de la clase
ItemAnimator
. El siguiente código ya no se compilará:
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
Puedes reemplazarlo con lo siguiente:
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- Se agregó una API de animación mejorada a la clase
- Cambios en la biblioteca de compatibilidad de preferencias de las versiones 7, 14 y 17:
-
- Se quitaron las API para controlar los cuadros de diálogo de
EditText
.
- Se quitaron las API para controlar los cuadros de diálogo de
- Cambios en la biblioteca de compatibilidad de Leanback de la versión 17:
-
- Se agregó una versión de la clase
GuidedStepFragment
para la biblioteca de compatibilidad (se extiendeandroid.support.v4.app.Fragment
) y se mejoraron las animaciones y transiciones. - Se actualizó la clase
GuidedStepFragment
para que se pueda colocar encima del contenido existente. - Se agregó la capacidad de anotar diferentes tipos de finalizaciones de búsqueda en la clase
SearchFragment
. - Se agregó compatibilidad con la transición escalonada de deslizamiento a la clase
VerticalGridFragment
.
- Se agregó una versión de la clase
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se agregó compatibilidad con el recuento de caracteres al widget
TextInputLayout
. - Se agregó compatibilidad con el ajuste de bordes a la clase
AppBarLayout
agregando la constanteSCROLL_FLAG_SNAP
. Cuando finaliza el desplazamiento, si la vista es solo parcialmente visible, se ajusta y se desplaza la vista al borde más cercano. - Se agregó compatibilidad para vistas personalizadas a la clase
NavigationView
por medio del atributoapp:actionLayout
o el métodoMenuItemCompat.setActionView()
.
- Se agregó compatibilidad con el recuento de caracteres al widget
- Cambios para la biblioteca de compatibilidad de pestañas personalizadas:
-
- Se agregó el método
enableUrlBarHiding()
a la claseCustomTabsIntent
. Permite que el cliente decida si la barra de URL debe ocultarse de manera automática cuando el usuario se desplaza hacia abajo. - Se agregó el método
setActionButton()
a la claseCustomTabsSession
. Permite que el cliente cambie el ícono de un botón de acción personalizado en una pestaña personalizada que ya se lanzó. - Se agregaron las constantes
TAB_SHOWN
yTAB_HIDDEN
como eventos nuevos para el métodoonNavigationEvent
de la claseCustomTabsCallback
.
- Se agregó el método
Revisión 23.0.1
septiembre de 2015
- Cambios para la biblioteca de compatibilidad de preferencias de las versiones 7 y 14:
-
- Se agregaron los archivos de estilo y el diseño de Material Design. (Problema 183376)
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se corrigieron fallas en la clase
Fragment
limitando el uso de capas de hardware en Android 4.1 (API nivel 16) y versiones posteriores. (Problema 183896) - Se solucionó un problema por el cual los botones de hardware no funcionaban cuando en una actividad se había configurado la clase
Toolbar
para que actuara comoActionBar
utilizando el métodosetSupportActionBar()
. (Problema 183334) - Se actualizó la clase
AppCompatDialogFragment
para que ya no arroje el errorWindows feature must be requested before adding content
. (Problema 183186)
- Se corrigieron fallas en la clase
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se corrigió la clase
AppBarLayout
para que se dibuje correctamente después de la rotación. (Problema 183109) - Se corrigió la clase
TabLayout
para que se comporte de manera correcta cuando un usuario hace clic después de deslizar el dedo. (Problema 183123)
- Se corrigió la clase
- Cambios para la biblioteca de compatibilidad de pestañas personalizadas:
-
- Se redujo el valor de
minSdkVersion
de 16 a 15 para compatibilidad con la versión. - Se agregó una forma de generar un
CustomTabsSessionToken
a partir de un intent.
- Se redujo el valor de
Revisión 23
agosto de 2015
- Se agregaron nuevas bibliotecas de compatibilidad:
-
- Biblioteca de compatibilidad de pestañas personalizadas
- Biblioteca de compatibilidad porcentual
- Biblioteca de compatibilidad con recomendaciones de apps para TV
- Biblioteca de compatibilidad de preferencias de la versión 7
- Biblioteca de compatibilidad de preferencias de la versión 14
- Biblioteca de compatibilidad de preferencias de la versión 17 para TV
Para obtener una lista completa de los cambios en la biblioteca de compatibilidad, consulta el Informe de diferencias de API de la biblioteca de compatibilidad.
Revisión 22.2.1
julio de 2015
- Cambios para la biblioteca de compatibilidad de diseño:
-
- Se agregaron los métodos
hide()
yshow()
a la claseFloatingActionButton
para la activación programática de animaciones. - Se agregó la constante
LENGTH_INDEFINITE
a la claseSnackbar
para mostrar una barra de notificaciones hasta que se descarte o se muestre otra. Además, se agregaron los métodossetActionTextColor(int)
ysetActionTextColor(ColorStateList)
. - Se agregó el método
getSelectedTabPosition()
a la claseTabLayout
para recuperar la pestaña seleccionada actualmente. - Se proporcionó una API completamente fluida en la clase
android.support.v7.app.NotificationCompat.MediaStyle
para el encadenamiento de métodos. - Se agregaron métodos de conveniencia a
RecyclerView
para la inserción por lotes de elementos.
- Se agregaron los métodos
Para obtener una lista completa de los cambios en la biblioteca de compatibilidad, consulta el Informe de diferencias de API de la biblioteca de compatibilidad.
Revisión 22.2.0
mayo de 2015
- Se agregó la biblioteca de compatibilidad de diseño:
-
- Se agregó
TextInputLayout
para mostrar el texto de error y la sugerencia deEditText
como etiquetas flotantes. - Se agregó
FloatingActionButton
para implementar una acción principal en la interfaz como un botón de acción flotante, que admite tamaños predeterminados o miniatura. - Se agregó
Snackbar
para proporcionar comentarios básicos con una acción opcional en una barra de notificaciones animada. - Se agregó
TabLayout
para implementar pestañas fijas y desplazables, así como una fácil integración conViewPager
. - Se agregó
NavigationView
para implementar el contenido del panel lateral de navegación, incluida la capacidad de inflar elementos del menú por medio de un recurso del menú. - Se agregó
CoordinatorLayout
, un diseño general, utilizado para desarrollar dependencias entre vistas hermanas y permitir reacciones de desplazamiento sencillas entre componentes medianteCoordinatorLayout.Behavior
. Muchos de los componentes de la biblioteca de diseño dependen de ser un elemento secundario de unCoordinatorLayout
. - Se agregó
AppBarLayout
, un contenedor paraToolbar
y otras vistas (comoTabLayout
) a fin de reaccionar a eventos desplazables al desplazarse fuera de la pantalla, volverse visible en reacción a un desplazamiento descendente o contraerse/mostrarse antes de desplazarse dentro o fuera de la pantalla. - Se agregó
CollapsingToolbarLayout
para controlar cómo se contrae unToolbar
. Una barra de herramientas puede contraerse fijando componentes en la parte superior de la pantalla mientras se contrae, introduciendo el desplazamiento de paralaje de componentes comoImageView
o agregando un color de malla de contenido cuando la vista se contrae parcialmente.
- Se agregó
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregaron los métodos
getContentChangeTypes()
ysetContentChangeTypes()
, así como campos del tipo de cambio relacionados, a la claseAccessibilityEventCompat
para el manejo de eventos de accesibilidad. - Se agregaron los métodos
getActiveQueueItemId()
,getCustomActions()
ygetExtras()
con campos de estado relacionados a la clasePlaybackStateCompat
para obtener acciones personalizadas de la cola. - Se agregaron los métodos
addCustomAction()
,setActiveQueueItemId()
ysetExtras()
a la clasePlaybackStateCompat.Builder
para agregar acciones personalizadas a un estado de reproducción. - Se agregaron los métodos
fromCustomAction()
ygetCustomAction()
a la clasePlaybackStateCompat.CustomAction
para obtener acciones personalizadas de la cola. - Se agregaron los métodos
isAttachedToWindow()
,offsetLeftAndRight()
yoffsetTopAndBottom()
a la claseViewCompat
para trabajar con vistas. - Se agregaron los métodos
addOnPageChangeListener()
,clearOnPageChangeListeners()
yremoveOnPageChangeListener()
a la claseViewPager
para responder a los cambios de página.Dejó de estar disponible el método
ViewPager.setOnPageChangeListener()
. - Se agregó el método
notifySubtreeAccessibilityStateChanged()
a la claseViewParentCompat
para notificar a una vista principal que el estado de accesibilidad de uno de sus descendientes cambió. - Se agregaron los métodos
translationZ()
,translationZBy()
,z()
yzBy()
a la claseViewPropertyAnimatorCompat
para agregar animaciones.
- Se agregaron los métodos
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó el método
onWindowStartingSupportActionMode()
a las clasesAppCompatActivity
,AppCompatCallback
yAppCompatDialog
para manejar modos de acción iniciados desde la ventana actual. - Se agregaron los métodos
isHandleNativeActionModesEnabled()
ysetHandleNativeActionModesEnabled()
a la claseAppCompatDelegate
para administrar los modos de acción nativos.
- Se agregó el método
Para obtener una lista completa de los cambios en la biblioteca de compatibilidad, consulta el Informe de diferencias de API de la biblioteca de compatibilidad.
Revisión 22.1.0
abril de 2015
- Cambios para la biblioteca de anotaciones:
-
- Se agregó la biblioteca de anotaciones para brindar compatibilidad con las inspecciones de código mejoradas. Las anotaciones se agregan como etiquetas de metadatos que adjuntas a las variables, los parámetros y los valores de retorno para inspeccionar los valores de retorno del método, los parámetros pasados y las variables y campos locales.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó la clase
ColorUtils
para proporcionar un conjunto de métodos de utilidades relacionados con colores. - Se agregaron los métodos
unwrap()
ywrap()
a la claseDrawableCompat
, lo que permite utilizarsetTint()
,setTintList()
ysetTintMode()
en todos los dispositivos de API nivel 4 o versiones posteriores. - Se agregó la clase
TraceCompat
para escribir eventos de registro en el búfer de registro del sistema, que luego se puede recopilar y visualizar utilizando la herramienta Systrace. - Se agregó la clase
CircularIntArray
para crear estructuras de datos de matrices de números enteros circulares. - Se agregaron los métodos
clear()
,removeFromStart()
yremoveFromEnd()
a la claseCircularArray
. Además, se cambiaron los métodos existentes en esa clase para que no sean definitivos. - Se agregó
InputDeviceCompat
como clase auxiliar para acceder a los datos en la claseInputDeviceCompat
. - Se agregó la clase
LayoutInflaterCompat
como clase auxiliar para acceder a los datos en la claseLayoutInflaterCompat
y se agregó la interfazLayoutInflaterFactory
. - Se agregaron clases, interfaces y métodos para admitir desplazamiento anidado.
- Se agregaron las clases auxiliares
NestedScrollingChildHelper
yNestedScrollingParentHelper
para implementar vistas de desplazamiento principales y secundarias anidadas. - Se agregó la interfaz
NestedScrollingChild
que implementarán las subclasesView
. - Se agregaron las interfaces
NestedScrollingParent
yScrollingView
para admitir operaciones de desplazamiento y proporcionar API relacionadas con el desplazamiento. - Se agregó el método
getNestedScrollAxes()
a la claseViewGroupCompat
. - Se agregaron métodos a la clase
ViewParentCompat
para admitir el desplazamiento anidado. - Se agregó la clase
NestedScrollView
para admitir el desplazamiento anidado principal y secundario en las versiones nuevas y antiguas de Android.
- Se agregaron las clases auxiliares
- Se agregaron métodos y constantes a la clase
MotionEventCompat
para obtener valores de eje y orígenes de eventos. - Se actualizó la clase
AccessibilityNodeInfoCompat
para agregar métodos para errores, invalidación de contenido y etiquetas. - Se agregaron las siguientes clases de interpolación para la animación:
FastOutLinearInInterpolator
,FastOutSlowInInterpolator
,LinearOutSlowInInterpolator
,LinearOutSlowInInterpolator
yPathInterpolatorCompat
. - Se agregó la clase
Space
para crear espacios entre componentes en diseños generales. Esta clase ya no está disponible en la biblioteca de gridlayout. - Se agregó la clase
TextViewCompat
para acceder a las funciones en unTextView
. - Se agregó un parámetro de desplazamiento al método
onPull()
en la claseEdgeEffectCompat
.
- Se agregó la clase
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó compatibilidad con el ajuste de tono a los widgets de appcompat, incluidos
AppCompatAutoCompleteTextView
,AppCompatButton
,AppCompatCheckBox
,AppCompatCheckedTextView
,AppCompatEditText
,AppCompatMultiAutoCompleteTextView
,AppCompatRadioButton
,AppCompatRatingBar
,AppCompatSpinner
yAppCompatTextView
. - Se actualizó la clase
AppCompatActivity
como la clase base para actividades que usan las funciones de la barra de acciones de la biblioteca de compatibilidad. Esa clase reemplaza la claseActionBarActivity
que ya no está disponible. - Se agregó la interfaz
AppCompatCallback
, que se implementará para que AppCompat pueda realizar devoluciones de llamada. - Se agregó la clase abstracta
AppCompatDelegate
como un delegado que puedes usar para ampliar la compatibilidad de AppCompat con cualquier actividad. - Se agregó la clase
AppCompatDialog
como la clase base para los cuadros de diálogo con tema de AppCompat. - Se agregó el estilo de ícono giratorio a las clases
AlertDialog
yAlertDialog.Builder
para proporcionar unAlertDialog
con tema de AppCompat. - Se agregó la clase
Palette.Builder
para generar instanciasPalette
.- Se agregó el método
from(Bitmap)
a la clasePalette
para comenzar a generar una paleta con la instanciaPalette.Builder
devuelta. - Dejaron de estar disponibles los métodos
Palette.generate()
yPalette.generateAsync()
.
- Se agregó el método
- Se agregó el método
getAbsoluteAlignment()
a la claseGridLayout.Spec
. - Dejó de estar disponible el uso de
app:theme
para diseñarToolbar
. Ahora puedes usarandroid:theme
para barras de herramientas en todos los dispositivos con API nivel 7 y versiones posteriores, y se admiteandroid:theme
en todos los widgets en dispositivos con API nivel 11 y versiones posteriores.
- Se agregó compatibilidad con el ajuste de tono a los widgets de appcompat, incluidos
- Cambios en la biblioteca Leanback de la versión 17:
-
- Se agregó
GuidedStepFragment
,GuidanceStylist
yGuidedActionsStylist
para admitir la creación de flujos de decisión de varios pasos.
- Se agregó
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se agregaron clases
SortedList
para mostrar elementos en un orden de lista y proporcionar notificaciones de cambios en la lista. - Se agregó la clase
SortedListAdapterCallback
que puede vincular una lista ordenada a una claseRecyclerView.Adapter
.
- Se agregaron clases
- Cambios en la biblioteca de renderscript de la versión 8:
-
- Se agregó la clase
ScriptIntrinsicHistogram
para usar como filtro de histogramas. - Se agregó la clase
ScriptIntrinsicResize
para cambiar el tamaño de una asignación 2D.
- Se agregó la clase
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se actualizó el método
getDrawable()
para devolver un objeto de elemento de diseño para un ID de recurso específico, una densidad de pantalla y un tema especificados. - Se agregó el método
setImportantForAccessibility()
para que puedas indicar si una vista debe activar eventos de accesibilidad. - Se agregó el método
getStatusBarBackgroundDrawable()
para que puedas obtener el elemento de diseño de la barra de estado del fondo. - Se agregaron métodos a la clase
NotificationCompat.CarExtender.UnreadConversation
para que las apps de mensajes de Android Auto puedan recuperar datos de notificaciones adicionales. - Se agregó el método
getProgressCircleDiameter()
para mostrar el diámetro de un diseño circular. - Cambió el color predeterminado
DrawerLayout
de la barra de estado acolorPrimaryDark
.
- Se actualizó el método
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó el estilo de ícono giratorio
Base_Widget_AppCompat_Spinner_Underlined
. - Se agregaron estilos de widgets con ajuste de todo con
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
yBase_Widget_AppCompat_RatingBar
.
- Se agregó el estilo de ícono giratorio
- Cambios en la biblioteca Leanback de la versión 17:
-
- Se agregaron los métodos
getRecycledPoolSize()
ysetRecycledPoolSize()
para permitir tamaños personalizados de grupos reciclados. - Se agregó el atributo
WRAP_CONTENT
a la configuración de ancho de diseño para admitir contenido ajustado para íconos de título. - Se definió
R.transition
en XML para mejorar las actualizaciones de la transición. - Compatibilidad habilitada para diseños de derecha a izquierda.
- Se agregó la compatibilidad con los eventos clave de reproducción y pausa de contenido multimedia a la clase
PlaybackOverlayFragment
. - Se agregaron las transiciones de ingreso y devolución a la clase
BrowseFragment
y la claseDetailsFragment
. - Se agregó el método
replace()
para reemplazar elementos en la matriz de adaptador de un objeto.
- Se agregaron los métodos
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se actualizaron los íconos de Google Cast para usar el estilo de Material Design.
- Se actualizaron todos los íconos utilizados en los cuadros de diálogo
MediaRouter
para usar el estilo de Material Design.
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se agregaron los métodos
getlayoutPosition()
ygetadapterPosition()
a la claseRecyclerView
. - Dejaron de estar disponibles los métodos
classgetChildPosition()
yfindViewHolderForPosition()
en la claseRecyclerView
. - Dejó de estar disponible el método
getPosition()
en la claseRecyclerView.ViewHolder
. - Dejó de estar disponible el método
getViewPosition()
en la claseRecyclerView.LayoutParams
.
- Se agregaron los métodos
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregaron varios métodos
NotificationCompat.WearableExtender
para mejorar la visualización de los códigos de barras en las notificaciones de dispositivos wearable.
- Se agregaron varios métodos
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó la clase
NotificationCompat.CarExtender
para admitir las extensiones de Android Auto a las notificaciones.
- Se agregó la clase
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó el constructor
PopupMenu
para admitir nuevos menús emergentes. - Se agregó compatibilidad con una descripción del ícono de contraer en la clase
Toolbar
. - Se actualizó el widget
SearchView
para admitir la visualización decommitIcon
. - Se quitó el atributo
buttonGravity
de la claseToolbar
.
- Se agregó el constructor
- Cambios para la biblioteca de cardview de la versión 7:
-
- Se agregó la API de
setCardBackgroundColor(ColorStateList)
para admitir el cambio del color de fondo deCardView
. - Se cambió
CardView
para informar con mayor precisión su valor de opacidad comoTRANSLUCENT
.
- Se agregó la API de
- Cambios en la biblioteca de recyclerview de la versión 7:
-
- Se agregaron las constantes
TOUCH_SLOP_DEFAULT
yTOUCH_SLOP_PAGING
a la claseRecyclerView
para admitir configuraciones de márgenes táctiles para paginación.
- Se agregaron las constantes
- Cambios en la biblioteca Leanback de la versión 17:
-
- Se agregó compatibilidad para generar fragmentos de código de la versión 4.
- Se cambió el color del texto secundario en
CardView
.
- Se agregó la biblioteca de compatibilidad de multidex para admitir múltiples archivos Dalvik ejecutables (DEX) para compatibilidad con archivos multidex anteriores a Android 5.0.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó compatibilidad con transiciones
Fragment
para dispositivos que ejecutan Android 5.0 (API nivel 21). Ten en cuenta que las transiciones no tienen efecto en los dispositivos con Android 4.4 y versiones anteriores. - Se agregó
DocumentFile
para facilitar la transición deFile
mientras se trabaja con árboles de documentos. Sin embargo, esta clase implica más sobrecarga de procesamiento en comparación con la APIDocumentsContract
de la plataforma agregada en Android 4.4 (API nivel 19). Por lo tanto, deberás usarDocumentsContract
cuando la ejecución sea en Android 4.4 y versiones posteriores.
- Se agregó compatibilidad con transiciones
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se agregó compatibilidad con interfaces de usuario de Material Design.
- Se agregó
Toolbar
, que generaliza la funcionalidad deActionBar
para usar en diseños de apps. - Se actualizó
ActionBarDrawerToggle
, que contiene la animación de menú a flecha - Se actualizaron los widgets de la interfaz de usuario común para permitir el ajuste de tono por medio de los atributos del tema cuando se ejecuta en dispositivos anteriores a Android 5.0
- Se agregó
SwitchCompat
, un backport del widgetSwitch
que se agregó en Android 4.0 (API nivel 14).
- Nueva biblioteca de cardview de la versión 7:
-
- Se agregó el widget
CardView
, que proporciona una implementación compatible con Material Design para mostrar elementos de datos.
- Se agregó el widget
- Nueva biblioteca de recyclerview de la versión 7:
-
- Se agregó el widget
RecyclerView
, que proporciona una vista de lista flexible para brindar una ventana limitada de un gran conjunto de datos.
- Se agregó el widget
- Nueva biblioteca de paletas versión 7:
-
- Se agregó la clase
Palette
, que permite extraer colores destacados de una imagen.
- Se agregó la clase
- Nueva biblioteca de leanback de la versión 17:
-
- Se agregó compatibilidad para compilar interfaces de usuario de TV, entre ellas,
BrowseFragment
,DetailsFragment
yPlaybackOverlayFragment
. Para obtener más información sobre el uso de estos widgets de la interfaz de usuario, consulta Cómo compilar apps de reproducción de TV.
- Se agregó compatibilidad para compilar interfaces de usuario de TV, entre ellas,
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó compatibilidad con notificaciones extendidas para Android Wear en
NotificationCompat.WearableExtender
, que permite especificar características específicas de wearable en las notificaciones. - Se agregó
NotificationCompat.Action.WearableExtender
, que permite agregar acciones en notificaciones de wearable. - Se agregó
NotificationManagerCompat
, lo que te permite emitir notificaciones que admitan funciones wearable correctamente. - Se agregó
RemoteInput
, lo que permite que un dispositivo de mano reciba la entrada de voz de una notificación que aparece en un dispositivo wearable. - Se mejoró el manejo de las respuestas táctiles en
SwipeRefreshLayout
.
- Se agregó compatibilidad con notificaciones extendidas para Android Wear en
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó la clase
SwipeRefreshLayout
, que permite a los usuarios actualizar el contenido de una vista con un gesto de deslizamiento vertical. - Se solucionaron problemas de accesibilidad con los paneles laterales de navegación.
- Se agregó la clase
- Cambios para la biblioteca de appcompat de la versión 7:
-
- Se corrigieron problemas de fondo con la barra de acción.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se mejoró
PrintHelper
agregando un manejo asincrónico de la impresión. - Se corrigió la aproximación de clase
DrawerLayout
del métodoaddChildrenForAccessibility()
. - Se corrigió la duplicación de elementos de diseño de deslizamiento en
ActionBarDrawerToggle
. - Se solucionó el problema de error por un paso que ocurre cuando se quita un elemento de un iterador de grupo.
- Se mejoró
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se mejoró la identificación de la ruta con el uso de nombre completo del componente en
MediaRouteProvider.ProviderMetadata
. - Se actualizó
MediaRouteChooserDialog
para ocultar rutas inhabilitadas.
- Se mejoró la identificación de la ruta con el uso de nombre completo del componente en
- Cambios en la biblioteca de renderscript de la versión 8:
-
- Se agregó propagación de error para la capa de invocación de RenderScript.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó compatibilidad con las API de Storage externas con
getObbDirs()
,getExternalFilesDirs()
,getExternalCacheDirs()
ygetStorageState()
. Estos métodos auxiliares siempre devuelven un único objeto de archivo en dispositivos que ejecutan Android 4.3 (nivel de API 18) y versiones anteriores. Cuando se ejecuta en Android 4.4 (nivel de API 19) y versiones posteriores, esos métodos pueden devolver más de un objeto de archivo. - Se agregó la clase
PrintHelper
que funciona con las API de impresión para imprimir imágenes con un mínimo de código. - Se agregó compatibilidad con la interfaz de usuario de arrastrar para abrir en menús emergentes. Para obtener más información, consulta
PopupMenuCompat
yListPopupWindowCompat
. - Se mejoró la compatibilidad de accesibilidad con la adición de un método
findFocus()
enAccessibilityNodeProviderCompat
y el métodogetLiveRegion()
enAccessibilityNodeInfoCompat
. - Se agregó la clase auxiliar
ScaleGestureDetectorCompat
para acceder a nuevos métodos de ajuste de gestos. - Se solucionó el problema con
ActionBarDrawerToggle
en las pantallas de idioma de derecha a izquierda. - Se modificó la opción
AutoScrollHelper
para consumir eventos táctiles o permitir que pasen a otras vistas.
- Se agregó compatibilidad con las API de Storage externas con
- Cambios en la biblioteca de mediarouter de la versión 7:
-
- Se agregó compatibilidad con la cola de reproducción multimedia, configuración de valores de encabezado HTTP y duración de reproducción multimedia.
- Se agregaron acciones explícitas de inicio, obtención y finalización de sesión para administrar explícitamente sesiones de reproducción multimedia con Media Router.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Interfaz de usuario
- Se agregó
BidiFormatter
para manejar strings de texto que combinan texto con formato de derecha a izquierda y de izquierda a derecha. - Se modificó
ViewPager
para manejar mejor los casos en los que la página tiene un ancho medido de cero en el procesamiento de diseño inicial. - Se modificaron
DrawerLayout
ySlidingPaneLayout
para no arrojar excepciones en la medición mientras se edita el código del proyecto.
- Se agregó
- Accesibilidad
- Se agregó
ExploreByTouchHelper
para simplificar la implementación de accesibilidad en vistas personalizadas. - Se corrigió un problema en el que
ViewPager
propagaba incorrectamente eventos de accesibilidadTYPE_VIEW_SCROLLED
. - Se corrigió una excepción de puntero nulo en
ViewPager
cuando se propagaba un evento de accesibilidad. - Se simplificó
AccessibilityNodeInfoCompat
cambiando las entradasCharSequence
a objetosString
. - Un constructor
AccessibilityRecordCompat
que usaba unObject
como entrada dejó de estar disponible.
- Se agregó
- Multimedia
- Se agregó la clase auxiliar
TransportMediator
para administrar el control de transporte multimedia, como reproducir, pausar, omitir y otras acciones multimedia. - Se agregó
DisplayManagerCompat
para administrar la salida de la pantalla a una o más pantallas del dispositivo.
- Se agregó la clase auxiliar
- Otros cambios
- Se agregó la clase auxiliar
WakefulBroadcastReceiver
para implementar un patrón común de detección de un evento de activación del dispositivo y pasaje del trabajo a unService
mientras se garantiza que el dispositivo no vuelva a suspenderse antes de que se complete la transferencia. - Se agregaron dos API nuevas,
commitContentChanged()
yrollbackContentChanged()
, aAsyncTaskLoader
para ayudar a manejar actualizaciones de fondo de cambios de datos que posteriormente se cancelan.
- Se agregó la clase auxiliar
- Interfaz de usuario
- Nueva biblioteca de appcompat de la versión 7:
-
- Se agregó
ActionBar
para permitir la implementación del patrón de diseño de la interfaz de usuario de la barra de acción de nuevo en Android 2.1 (API nivel 7) y versiones posteriores. El uso de esta clase requiere que, para implementar tu actividad, extiendas la nueva claseActionBarActivity
.
- Se agregó
- Nueva biblioteca de mediarouter de la versión 7:
-
Se agregó una nueva biblioteca de mediarouter que admite la vista previa para desarrolladores de Google Cast. Las API de la biblioteca de mediarouter de la versión 7 proporcionan un medio para controlar el enrutamiento de canales y transmisiones multimedia desde el dispositivo actual a pantallas, altavoces y otros dispositivos de destino externos, con compatibilidad hasta Android 2.1 (nivel de API 7). Consulta la biblioteca de mediarouter de la versión 7 para obtener más información.
Las API de la biblioteca mediarouter de la versión 7 incorporadas en la biblioteca de compatibilidad r18 están sujetas a cambios en revisiones posteriores de la biblioteca de compatibilidad. En este momento, recomendamos usar la biblioteca solo en conexión con la vista previa para desarrolladores de Google Cast.
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
DrawerLayout
para crear un panel lateral de navegación que se puede extraer desde el borde de una ventana. - Se agregó un widget
SlidingPaneLayout
para crear vistas de resumen y de detalle vinculadas que se adaptan de manera adecuada a varios tamaños de pantalla. - Se agregó
ActionBarDrawerToggle
como una forma de vincular las funciones deDrawerLayout
yActionBar
. - Se agregó
ViewDragHelper
como un nuevo componente común para arrastrar vistas dentro de una vista principal. - Se agregó
ScrollerCompat
para proporcionar compatibilidad conScroller
yOverScroller
. - Se agregó
FileProvider
para permitir el uso compartido de archivos privados entre aplicaciones. - Se actualizó
ViewPager
para arrojar una excepción si la clasePagerAdapter
asociada se modifica sin una llamada anotifyDataSetChanged()
. - Se solucionó un problema con el orden de dibujo de
ViewPager
secundarios. - Se corrigió
GestureDetectorCompat
para enviar llamadas perdidas deonSingleTapConfirmed(MotionEvent)
entre el tiempo de espera del toque y los eventos de mantener presionado.
- Se agregó
- Nueva biblioteca de gridlayout de la versión 7:
-
- Se agregó
GridLayout
para proporcionar compatibilidad con el objeto de diseñoGridLayout
. - Se agregó
android.support.v7.widget.Space
que se puede usar para crear áreas en blanco dentro de un objeto de diseñoGridLayout
.
- Se agregó
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se mejoró el comportamiento de interacción para
ViewPager
. - Se corrigió un error que podía hacer que
ViewPager
seleccionara la página incorrecta. - Se corrigió el uso del método
removeView()
durante el diseño deViewPager
. - Se solucionó el problema con
SearchViewCompat
donde el uso del botón Atrás para descartar no borra el texto de búsqueda. Esta corrección solo se aplica a API nivel 14 y versiones posteriores de host.
- Se mejoró el comportamiento de interacción para
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Interfaz de usuario
- Se agregó compatibilidad para clases
Fragment
anidadas. - Se agregaron mejoras en la depuración de
FragmentManager
. - Se solucionó el problema en
FragmentTabHost
donde la interacción de fragmentos y pestañas podía provocar una pérdida de estado deListView
. - Se solucionó un problema con la sugerencia visible para el usuario en
FragmentStatePagerAdapter
. - Se agregó la interfaz
PageTransformer
aViewPager
para permitir que las aplicaciones proporcionen un comportamiento de transición personalizado para el desplazamiento. - Se agregaron funciones y correcciones nuevas a
TaskStackBuilder
de la versión actual. - Se corrigió
PagerTitleStrip
para hacer un seguimiento de manera correcta delPagerAdapter
que está en uso actualmente. - Se corrigieron problemas de parpadeo, posicionamiento y recorte de texto de la pantalla con
PagerTitleStrip
. - Se corrigió
PagerTabStrip
para respetar correctamente el relleno al dibujar un subrayado.
- Se agregó compatibilidad para clases
- Accesibilidad
- Se agregó compatibilidad para nuevos tipos de gestos y eventos táctiles de accesibilidad en
AccessibilityEventCompat
. - Se agregó compatibilidad con nuevas API de accesibilidad en
ViewCompat
. - Se agregó compatibilidad con el método
performAccessibilityAction()
enViewCompat
.
- Se agregó compatibilidad para nuevos tipos de gestos y eventos táctiles de accesibilidad en
- Se agregó compatibilidad para gestos con
GestureDetectorCompat
. - Se agregó compatibilidad para realizar operaciones atómicas en archivos usando una clase
AtomicFile
nueva. - Se agregó compatibilidad para el conjunto completo de métodos
make
enIntentCompat
. - Se agregó el método
trimToSize()
en la clase de utilidadLruCache
. - Se actualizó
ConnectivityManagerCompat
para obtener NetworkInfo a partir de una emisiónCONNECTIVITY_ACTION
.
- Interfaz de usuario
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó compatibilidad con las funciones de notificación introducidas en Android 4.1 (API nivel 16) con adiciones a
NotificationCompat
.
- Se agregó compatibilidad con las funciones de notificación introducidas en Android 4.1 (API nivel 16) con adiciones a
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Compatibilidad con la interfaz de usuario
- Se agregó compatibilidad con
PagerTabStrip
, lo que brinda una funcionalidad mejorada más allá dePagerTitleStrip
. - Se corrigieron varios errores de
PagerTitleStrip
yPagerTabStrip
, entre ellos, la opciónsetAllCaps
, la alineación del título, las mejoras de aspecto, las restricciones de ancho mínimo y los problemas de navegación táctil. - Se agregó compatibilidad para márgenes de página
ViewPager
, lo que ayuda a la claseViewPager
a proporcionar compatibilidad de paginación para contenido con un amplio rango de desplazamiento horizontal, como un mapa. - Se corrigieron varios errores de
ViewPager
, incluidos los problemas de cambio en el tamaño y el conjunto de datos, el posicionamiento de la página, la interacción del usuario, el seguimiento de desplazamiento y los problemas de navegación del teclado. - Se corrigieron muchos errores de
Fragment
, entre ellos la administración deonActivityResult()
cuando el fragmento de destino ya no existe y el envío de eventos de selección a fragmentos invisibles. También se mejoró el comportamiento deFragmentTransaction.replace()
y se agregó un mejor manejo del estado para los fragmentos que se quitan de la vista. - Se agregó compatibilidad con el método
postOnAnimation()
enViewCompat
. - Se actualizó
NavUtils
para usar la funcionalidad de navegación Arriba de Android 4.1 (API nivel 16) cuando esté disponible.
- Se agregó compatibilidad con
- Accesibilidad
- Se actualizaron las clases de compatibilidad de accesibilidad, como
AccessibilityNodeInfoCompat
, para seguir las correcciones realizadas en Android 4.1 (API nivel 16). - Se agregó compatibilidad para acciones de desplazamiento de accesibilidad en
ViewPager
.
- Se actualizaron las clases de compatibilidad de accesibilidad, como
- Mejoras generales
- Se actualizó
TaskStackBuilder
para reflejar los cambios de API en Android 4.1 (API nivel 16). - Se mejoró
TaskStackBuilder
para permitir que se use desde un servicio. - Se agregó compatibilidad para
EXTRA_HTML_TEXT
aShareCompat
. - Se actualizó
NotificationCompat.Builder
para admitir el métodosetNumber()
. - Se agregó compatibilidad en
ConnectivityManagerCompat
para el métodoisActiveNetworkMetered()
.
- Se actualizó
- Compatibilidad con la interfaz de usuario
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se corrigieron las marcas de intent para objetos
PendingIntent
generados porTaskStackBuilder
. - Se quitaron los atributos no utilizados de los proyectos de la biblioteca de gridlayout para garantizar que la biblioteca se pueda compilar con API nivel 7 y versiones posteriores.
- Se agregaron los archivos
.classpath
y.project
para el proyecto de biblioteca de gridlayout.
- Se corrigieron las marcas de intent para objetos
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
ShareCompat
, que proporciona clases auxiliares a fin de enviar y recibir contenido para aplicaciones de publicación compartida en redes sociales, incluidos metadatos nuevos para atribuir datos compartidos a la app de origen. Esta clase también proporciona integración compatible con el nuevoShareActionProvider
en Android 4.0. - Se agregaron
NavUtils
yTaskStackBuilder
a fin de proporcionar compatibilidad con la implementación de las pautas de Diseño de Android para la navegación. Estas adiciones incluyen una forma de implementar el botón Arriba de la barra de acción en todas las versiones. Para ver una implementación de ejemplo de este patrón, consulta la muestra de AppNavigation en (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
). - Se agregó
NotificationCompat.Builder
para proporcionar una implementación de compatibilidad de la clase auxiliarNotification.Builder
de Android 3.0 a fin de crear notificaciones de sistema estandarizadas.
- Se agregó
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Cambios en ViewPager:
- Se agregó compatibilidad adicional con vistas decorativas para
ViewPager
. Las vistas decorativas se pueden proporcionar como vistas secundarias de una página en un diseño XML. - Se agregó
PagerAdapter.getPageTitle()
para proporcionar strings de título para las páginas, que, de manera predeterminada, no tiene título para cada página. - Se agregó
PagerTitleStrip
, una barra de título no interactiva, que se puede agregar como un elemento secundario de ViewPager. Los desarrolladores pueden proporcionar el aspecto y el color del texto, así como el tamaño del diseño y la información de gravedad. - Se actualizaron los métodos
PagerAdapter
para tomar objetos de ViewGroup, en lugar de View, a fin de evitar la transmisión de clases en las implementaciones de adaptadores. - Se actualizó
ViewPager
para usar el comportamiento de lanzamiento estilo Launcher. - Se corrigieron errores para la interacción con la interfaz de usuario y la automatización de pruebas.
- Se agregó compatibilidad adicional con vistas decorativas para
- Compatibilidad para fragmentos:
- Se cambió el método
setStartDeferred()
asetUserVisibleHint(boolean)
. - Se agregó el inicio diferido de las páginas fuera de la pantalla para mejorar el rendimiento.
- Se cambió el método
- Compatibilidad con API de accesibilidad:
- Se actualizaron los métodos
AccessibilityDelegateCompat
para mostrar listas vacías en lugar de nulas. - Se agregaron las nuevas API que necesitan las muestras de la versión 4.
- Se actualizaron los métodos
- Cambios en ViewPager:
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Compatibilidad con API de accesibilidad:
- Se agregó
AccessibilityDelegateCompat
para admitirView.AccessibilityDelegate
. - Se agregó
AccessibilityEventCompat
para admitirAccessibilityEvent
. - Se agregó
AccessibilityManagerCompat
para admitirAccessibilityManager
. - Se agregó
AccessibilityNodeInfoCompat
para admitirAccessibilityNodeInfo
. - Se agregó
AccessibilityRecordCompat
para admitirAccessibilityRecord
. - Se agregó
AccessibilityServiceInfoCompat
para admitirAccessibilityServiceInfo
. - Se agregó
ViewGroupCompat
para admitir funciones de accesibilidad enViewGroup
. - Se modificó
ViewCompat
para admitir funciones de accesibilidad enView
.
- Se agregó
- Cambios en ViewPager:
- Se agregó compatibilidad con los márgenes entre páginas.
Se puede proporcionar un
Drawable
opcional para rellenar los márgenes. - Se agregó compatibilidad para
EdgeEffect
. - Se agregó compatibilidad para la navegación del teclado.
- Se agregó compatibilidad para controlar cuántas páginas se mantienen a ambos lados de la página actual.
- Se mejoró la física táctil.
- Se corrigieron errores relacionados con el comportamiento de la interfaz de usuario.
- Se agregó compatibilidad con los márgenes entre páginas.
Se puede proporcionar un
- Compatibilidad con API de accesibilidad:
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Se agregó
EdgeEffectCompat
para admitirEdgeEffect
. - Se agregó
LocalBroadcastManager
para permitir que las aplicaciones se registren fácilmente y reciban intents dentro de una sola aplicación sin transmitirlos globalmente. - Se agregó compatibilidad con
ViewCompat
para comprobar y establecer modos de desplazamiento paraView
en Android 2.3 y versiones posteriores. - Cambios en las API de fragmentos:
- Se agregaron API nuevas para controlar la visibilidad de los nuevos menús.
- Se agregaron API de animación personalizadas.
- Se agregaron API en
FragmentActivity
para retener datos de instancia personalizados que no son de configuración. - Se corrigieron varios errores.
- Se corrigió un error
Loader
que provocaba problemas en la cancelación deAsyncTask
cuando se ejecutaba en Froyo y versiones anteriores de la plataforma. El código de compatibilidad ahora usa su propia versión deAsyncTask
para mantener el mismo comportamiento en todas las versiones de la plataforma.
- Se agregó
- Cambios en la biblioteca de compatibilidad de la versión 4:
-
- Agrega compatibilidad para
Fragment.SavedState
- Agrega
MotionEventCompat
para admitir APIMotionEvent
más nuevas - Agrega
VelocityTrackerCompat
para admitir APIVelocityTracker
más nuevas - Agrega
ViewConfigurationCompat
para admitir APIViewConfiguration
más nuevas - Todas las API nuevas (disponibles solo en la biblioteca de compatibilidad) permiten crear IU con paginación horizontal, lo que permite a los usuarios deslizar hacia la izquierda y la derecha entre las vistas de contenido. Estas son algunas de las clases que se pueden usar:
ViewPager
: UnViewGroup
que administra el diseño de las vistas secundarias, entre las cuales el usuario puede deslizarse.PagerAdapter
: Un adaptador que propaga elViewPager
con las vistas que representan cada página.FragmentPagerAdapter
: Una extensión dePagerAdapter
para alternar entre fragmentos.FragmentStatePagerAdapter
: Una extensión dePagerAdapter
para alternar entre fragmentos que usa la compatibilidad de la biblioteca paraFragment.SavedState
.
- Agrega compatibilidad para
- Nueva biblioteca de compatibilidad de la versión 13:
-
- Incluye
FragmentPagerAdapter
yFragmentStatePagerAdapter
para admitir la paginación horizontal.Estas son exactamente iguales a las API agregadas a la biblioteca de compatibilidad de la versión 4, pero dependen de otros componentes de la plataforma en Android 3.2. Usa esta biblioteca en lugar de la versión 4 si estás desarrollando para Android 3.2 y versiones posteriores (todas las demás API de la biblioteca de la versión 4 ya están disponibles con API nivel 13).
- Incluye
- Cambios para la biblioteca de la versión 4:
-
- Compatibilidad para fragmentos de animaciones.
- Corregir el error
Fragment.onActivityResult()
Revisión 22
marzo de 2015
Revisión 21.0.3
diciembre de 2014
Revisión 21.0.2
noviembre de 2014
Revisión 21.0.1
noviembre de 2014
Revisión 21
octubre de 2014
Revisión 20
julio de 2014
Revisión 19.1.0
marzo de 2014
Revisión 19.0.1
diciembre de 2013
Revisión 19
octubre de 2013
Revisión 18
julio de 2013
Revisión 13
mayo de 2013
Revisión 12
febrero de 2013
Revisión 11
noviembre de 2012
Revisión 10
agosto de 2012
Revisión 9
junio de 2012
Revisión 8
abril de 2012
Revisión 7
marzo de 2012
Revisión 6
diciembre de 2011
Nota: La referencia para las API de la biblioteca de compatibilidad ahora está disponible con las referencias del marco de trabajo, por ejemplo: android.support.v4.app
.
Revisión 5
diciembre de 2011
Revisión 4
octubre de 2011
Revisión 3
julio de 2011
Revisión 2
mayo de 2011
Revisión 1
marzo de 2011
Versión inicial con la biblioteca de la versión 4.