Archivo de revisión de la biblioteca de compatibilidad

En esta página, se proporcionan detalles sobre las versiones anteriores de los paquetes de la biblioteca de compatibilidad. Para versiones más recientes de la biblioteca de compatibilidad; consulta Recientes Revisiones 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 es sujeta a cambios y no necesariamente incluye funciones o correcciones de errores. de las versiones estables más recientes de la biblioteca de compatibilidad.

Importante: Las bibliotecas de compatibilidad ya están disponibles a través del repositorio Maven de Google. No es necesario que descargues el recurso de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.

API nuevas

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 usa el ajuste automático de 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 es sujeta a cambios y no necesariamente incluye funciones o correcciones de errores. de las versiones estables más recientes de la biblioteca de compatibilidad.

Importante: Las bibliotecas de compatibilidad ya están disponibles a través del repositorio Maven de Google. No es necesario que descargues el recurso de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.

Cambios importantes

  • FragmentActivity.setSupportMediaController() y FragmentActivity.getSupportMediaController() se quitaron. Utiliza los nuevos métodos estáticos MediaControllerCompat.setMediaController() y MediaControllerCompat.getMediaController().
  • Ahora llama a BottomNavigationView onNavigationItemReselected() cuando se selecciona un elemento ya seleccionado en lugar de llamar onNavigationItemSelected()
  • Todas las instancias del método findViewById() ahora devuelven <T extends View> T en lugar de View. Este cambio tiene las siguientes implicaciones:
    • Esto puede provocar que el código existente ahora tenga un tipo de datos ambiguo que se muestra. por ejemplo, si hay someMethod(View) y someMethod(TextView) que lleva el resultado de una llamada a findViewById()
    • Cuando se usa el lenguaje de origen Java 8, se requiere una conversión explícita para View cuando el tipo de datos que se muestra no tiene restricciones (por ejemplo, assertNotNull(findViewById(...)).someViewMethod())
    • Anulaciones de métodos findViewById() no finales (para por ejemplo, Activity.findViewById()) necesitarán la devolución tipo actualizado.

API nuevas

  • FragmentManager y Fragment tienen un isStateSaved() para permitir consultar si un transacción sin pérdida de estado. Esto es especialmente útil para verificar cuando se controla un evento onClick() antes de ejecutar cualquier transacción.
  • En AnimatedVectorDrawableCompat, se admite el movimiento de rutas. El movimiento de ruta permite que un animador de objeto cambie dos propiedades al mismo tiempo el tiempo en función de una ruta; la ruta se especifica android:pathData en el XML del animador).
  • Basado en la física animación:
    • Nuevo objeto FlingAnimation que admite animaciones con una velocidad inicial y se ralentiza suavemente.
    • Las subclases de DynamicAnimation admiten animaciones personalizadas. propiedad de cualquier objeto.
    • Tanto SpringAnimation como FlingAnimation pueden ahora animar un valor flotante sin requerir un View o una Object asociados.

    Para obtener más información, consulta la Animación de primavera y Animación de lanzamiento páginas de vista previa.

  • Fuente Compatibilidad en XML:
    • ResourcesCompat.getFont permite cargar fuentes recursos, incluido XML de familia de fuentes, que pueden usarse con TextView.setTypeface()
    • Cuando se usa AppCompat, TextView admite especificar un recurso de fuente o XML de familia de fuentes mediante el atributo XML android:fontFamily
    • Usa XML de familia de fuentes para crear familias de fuentes con estilo y peso. variaciones. (Si usas las clases de la biblioteca de compatibilidad para esto, usa el atributos app:, así como android: atributos).
  • Descargable fuentes:
    • Nuevo objeto FontsContractCompat que te permite solicitar fuentes de un proveedor de fuentes en lugar de agruparlas en tu app.
    • Las fuentes también pueden solicitarse en XML y usarse en los diseños.
  • Compatibilidad con emojis biblioteca:
    • EmojiCompat puede procesar un CharSequence determinado y agrega EmojiSpans.
    • EmojiTextView y otros widgets para mostrar emojis.
    • FontRequestEmojiCompatConfig para solicitar fuentes de emojis desde un proveedor de fuentes.
  • Ajuste automático de tamaño TextView:
    • Nuevos métodos en TextViewCompat y atributos XML para controlar el ajuste automático de tamaño en TextView.
  • Controles de reproducción Leanback con soporte de búsqueda:
    • Nuevo PlaybackTransportRowPresenter que renderiza la reproducción con una barra de búsqueda.
    • Nuevo PlaybackTransportControlGlue que funciona con PlaybackTransportRowPresenter y admite búsquedas.
    • Nueva clase base PlaybackSeekDataProvider para que la app proporcionar miniaturas de búsqueda a PlaybackTransportControlGlue
  • Almacén de datos de preferencias:
    • PreferenceDataStore ahora te permite implementar tu propio almacenamiento de preferencias, configurado con nuevos métodos en Preference y PreferenceManager.

Problemas conocidos

  • Integración de la compatibilidad de fuentes y emojis descargables con Google Play Los Servicios solo funcionan en los Servicios de Google Play v11 y versiones posteriores, que actualmente disponible a través de la página Programa de Servicios Beta.

Correcciones de errores

  • La API de MediaBrowserCompat.search() no funciona (problema de AOSP) 262170).
  • ViewCompat.postInvalidateOnAnimation() arroja una excepción (AOSP (error 80146)
  • onActivityCreated() llamó a fragmentos en una actividad destruida
  • RecyclerView.isComputingLayout() debe mostrar el valor true durante carga previa
  • Cuando se interrumpe y se revierte una transición de Fade, la View inicia la animación desde el principio. (Corregir puerto de Framework de Android).
  • Transition.Fade ignora la versión alfa inicial de View (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 es sujeta a cambios y no necesariamente incluye funciones o correcciones de errores. de las versiones estables más recientes de la biblioteca de compatibilidad.

Cambios importantes

Nota: La versión mínima del SDK aumentó a 14. Como resultado, muchas APIs que existían solo para API < 14 tienen quedó obsoleto. Los clientes de estas APIs deben migrar a su framework equivalentes, como se indica en la página de referencia de cada API obsoleta.

  • El módulo support-percent quedó obsoleto. Clientes de este módulo Deberías migrar al nuevo widget ConstraintLayout, que se proporciona como independiente en SDK Manager.
  • El módulo support-fragment ya no depende del support-media-compat.

API nuevas

Se agregaron muchas clases, métodos y constantes nuevos para proporcionar compatibilidad con versiones anteriores para las APIs de plataforma agregadas en la versión preliminar de O.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: Los IME pueden escuchar "sin aprendizaje" marcas de las aplicaciones que tienen modo privado, como los navegadores. Esta ayuda a los IME a comprender si una app está en modo privado, de modo que puedan inhabilitar su aprendizaje o funcionalidad adaptable mientras la app esté en ese .

Para obtener una lista completa de los cambios de la API entre 25.2.0 y 26.0.0-alpha1, consulta la API de la biblioteca de compatibilidad informe de diferencias.

Correcciones de errores

  • En algunos casos, es simple AutoTransition. la animación puede interrumpirse por "saltos" de la vista. (Problema 221816 de AOSP)

Revisión 25.4.0

(junio de 2017)

Importante: Las bibliotecas de compatibilidad ya están disponibles a través del repositorio Maven de Google. No es necesario que descargues el recurso de SDK Manager. Para obtener más información, consulta Configuración de la biblioteca de compatibilidad.

Cambios importantes

  • No se permiten llamadas a executePendingTransactions(), commitNow(), popBackStackImmediate() ni transacciones similares durante FragmentManager cambia el estado. Reentrante La ejecución de transacciones no es segura y FragmentManager ahora aplica esto durante su estado cambios.
  • Simultáneamente con esta versión de la biblioteca de compatibilidad, también lanzaremos multidex versión 1.0.2. 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 extracción de archivos incorrecta. la administración de la app.
    • Se corrigió un error que podía provocar archivos temporales abandonados.
    • Proporciona una instalación más rápida cuando se realiza en un proceso simultáneo.
    • Corrige un error de instalación en los niveles de API 19 y 20.

API nuevas y modificadas

Se admiten la transformación y la interpolación de rutas en AnimatedVectorDrawableCompat. Transformación de la ruta permiten que las formas cambien desde una ruta (especificada como android:valueFrom) a otra ruta (especificada como android:valueTo), con el fin de proporcionar imágenes complejas y atractivas efectos. La interpolación de la ruta permite que se especifiquen los interpoladores de AnimatedVectorDrawableCompat como rutas (especificadas como android:pathData en la columna XML).

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 onItemClicked dañadas 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 cantidad mínima de SDK. versión 14 o una posterior. (Problema 251302 de AOSP)
  • La animación basada en la física updateListener omite el primer fotograma.
  • Animación de la etiqueta BottomNavigationView está roto.

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 compilas desde Gradle, lo que simplifica y hacer un 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 APIs obsoletas se quitarán en una versión futura y los desarrolladores deberían migrar de ellos. Para obtener más información sobre cómo migrar específica, consulta su documentación.

ExifInterface
El método booleano getLatLong(float[]) dejó de estar disponible. En su lugar, usa el nuevo método getLatLong(). que no recibe argumentos y muestra double[].
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) ya no está disponible. En su lugar, usa el nuevo método setErrorMessage(int, CharSequence), que recibe un código de error y una descripción opcional.
EXTRA_SUGGESTION_KEYWORDS dejó de estar disponible. En su lugar, usa el Funcionalidad de búsqueda de MediaBrowserCompat.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() recibió Se cambió el nombre por LinearLayoutManager.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 activar o desactivar el panel lateral de navegación.
customtabs
Se agregó compatibilidad para canales de mensajes. Consulta la CustomTabsService.requestPostMessageChannel() y CustomTabsService.postMessage() para obtener más detalles.
dynamic-animation
Nueva biblioteca de animación basada en la física que proporciona un conjunto de APIs para Crear animaciones que reaccionen dinámicamente a las entradas del usuario.
leanback-v17
Se agregó compatibilidad con fondos de paralaje. Consulta la Parallax para obtener más detalles.
Agregada TimePicker para seleccionar horarios en una interfaz de TV.
mediacompat
Se agregó funcionalidad de búsqueda. Consulta la MediaBrowserCompat.search() y MediaBrowserServiceCompat.onSearch() para obtener más detalles.
Se agregó compatibilidad con los modos de reproducción aleatoria y repetición. Consulta la MediaSessionCompat.setRepeatMode() y setShuffleModeEnabled() para obtener más detalles.

Errores corregidos

Revisión 25.2.0

(febrero de 2017)

Cambios importantes

Errores corregidos

  • En esta versión, se soluciona un problema grave de mediarouter en el que usar un archivo A2DP las APIs de enrutamiento del dispositivo y del contenido multimedia podrían hacer que el dispositivo no responda lo que requiere un reinicio.
  • El FragmentManager.FragmentLifecycleCallbacks ahora es estática.

Errores corregidos

  • Mostrar una presentación de diapositivas con duplicación de pantalla hace que el dispositivo Desconéctate 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 cadenas (problema 232407 de AOSP)
  • Sugerencia de superposiciones de TextInputLayout y texto si el texto se establece mediante XML (problema 230171 de AOSP)
  • Fuga de memoria en MediaControllerCompat (problema de AOSP) 231441).
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() fallando
  • RecyclerView falla cuando se recicla contenedores de vistas (problema 225762 de AOSP)
  • getAllowGeneratedReplies() muestra incorrectamente "false" para acciones dentro de WearableExtender

Revisión 25.1.1

(enero de 2017)

Importante: Hay un error conocido en el android.support.v7.media.MediaRouter en las revisiones 25.1.1 y 25.1.0 de la biblioteca de compatibilidad. Si tu app usa la versión 7 de MediaRouter, debes actualizar a la Revisión de la biblioteca de compatibilidad 25.2.0. que corrige este error.

Cambios importantes

  • Las transacciones de fragmentos ahora se pueden optimizar dentro y entre transacciones de contenedores. Optimizar operaciones de transacción de fragmentos puede eliminar las operaciones que cancelen. Por ejemplo, supongamos que se se ejecutan juntas, una que agrega un fragmento A y otra que reemplaza al fragmento A por el B. En este caso, la primera operación podría cancelarse y solo se agregue 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 podrían tener estado cambios fuera del orden esperado. Por ejemplo, supongamos que una transacción agrega el fragmento A, un segundo agrega el fragmento B y un tercero quita el fragmento R. Sin optimización, el fragmento B podría esperar creado, el fragmento A también existirá porque el fragmento A se quitará después de agregar el fragmento B. Con la optimización, el fragmento B no puede estar seguro ese fragmento A existirá mientras se crea B, porque el fragmento A la creación y destrucción puede eliminarse a través de la optimización.

    De manera predeterminada, esta optimización está inhabilitada. Para habilitar la optimización, llama a FragmentTransaction.setAllowOptimization(true).

  • Ahora los fragmentos pueden posponer sus transiciones y animaciones están listos para usar Fragment.postponeEnterTransition() y Fragment.startPostponedEnterTransition(). Esta API es similar a Activity.postponeEnterTransition() y Activity.startPostponedEnterTransition() cuando su uso se da con actividades de transacción.

Errores corregidos

Revisión 25.1.0

(diciembre de 2016)

Importante: Hay un error conocido en el android.support.v7.media.MediaRouter en las revisiones 25.1.1 y 25.1.0 de la biblioteca de compatibilidad. Si tu app usa la versión 7 de MediaRouter, debes actualizar a la Revisión de la biblioteca de compatibilidad 25.2.0. que corrige este error.

Cambios importantes

  • Clientes de widgets RecyclerView anidados (por ejemplo, lista de desplazamiento vertical de listas de desplazamiento horizontal) puede obtener beneficios significativos de rendimiento al sugerir a los administradores de diseño RecyclerView internos la cantidad de elementos a preparar antes de que se desplacen por la pantalla. Llamada LinearLayoutManager.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. puedes mejorar el rendimiento llamando LinearLayoutManager.setInitialPrefetchItemCount(4) Hacerlo permite que RecyclerView cree todos los eventos de vistas anticipadas, mientras que el RecyclerView externo es el desplazamiento, lo que reduce significativamente la cantidad de saltos durante manuscritos.
  • FragmentActivity.setSupportMediaController() y FragmentActivity.getSupportMediaController() dejaron de estar disponibles. Usa los nuevos MediaControllerCompat.setMediaController() y MediaControllerCompat.getMediaController() estáticos. .
  • Cuando un cliente especifica un tono de widget a través del tono de appcompat (por ejemplo, appcompat:buttonTint), el cliente es responsable de proporcionar todos los estados necesarios (como "inhabilitado", "presionado", etc.). Este es de manera coherente con la forma en que se especifican los tonos de widget cuando se usan ajustes de tono del framework.

API nuevas y modificadas

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 corrigió la preferencia de compatibilidad El foco dañado de fragmentos cuando se usa la navegación Dpad, como en Android TV dispositivos.
  • Leanback: BrowseFragment falla con los encabezados inhabilitados y el adaptador vacío.
  • Appcompat: AlertDialog es demasiado ancho.
  • InputContentInfoCompat llamada requestPermission() cuando debe llamar a releasePermission().
  • 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. menos de 24
  • La biblioteca Leanback activa errores falsos de lint.
  • La biblioteca de paletas provocó pruebas fallidas en todos los niveles de API
  • RecyclerView pruebas fallidas en Leanback
  • RecyclerView falla cuando se recicla contenedores de vistas (problema 225762 de AOSP)
  • Fragment.onDestroy() no se llamó al fragmento en la pila de actividades
  • La lámina de CollapsingToolbarLayout es no se dibuja cuando se contrae
  • CoordinatorLayout.offsetChildByInset() tiros IllegalArgumentException
  • Se está animando la desvinculación de RecyclerView de elementos RecyclerView internos, prevenir el futuro cargas previas
  • No se pueden adjuntar RecyclerView elementos carga previa anidada
  • Cargar datos previamente para RecyclerView anidados los elementos se descartan durante el primer diseño
  • La carga previa de RecyclerView falla si dos arrastres eventos llegan en la misma posición
  • RecyclerView debe, de manera especulativa, mientras se renderiza RenderThread
  • Los recursos de color de configuración nocturna convertidos en elementos de diseño no siempre son se borró definitivamente de la caché de recursos
  • FloatingActionButton: La configuración programática de BackgroundTintList no funciona correctamente (AOSP) error 227428)
  • TextInputLayout: El tipo de letra no es se está configurando para ErrorView (problema 227803 de AOSP)
  • TextInputLayout siempre recurre a un método alternativo para aclarar un color de error por debajo del nivel de API 23 (problema 221992 de AOSP)
  • FloatingActionButton se muestra como se presiona cuando el puntero sale

Una lista completa de correcciones de errores públicas se encuentra disponible en el Herramienta de seguimiento de errores del AOSP.

Bajas

En esta versión, varios métodos y clases dejaron de estar disponibles. Estos Las APIs obsoletas se quitarán en una versión futura y los desarrolladores deben migrar de ellos. Para obtener más información sobre cómo migrar específica, consulta su documentación.

Revisión 25.0.1

(noviembre de 2016)

Errores corregidos

  • El botón de activación de la contraseña de TextInputLayout ahora está inhabilitado de forma predeterminada para evitar reemplazar innecesariamente de elementos de diseño finales especificados por el desarrollador. Puede habilitarse manualmente a través del Atributo XML passwordToggleEnabled.
  • BottomNavigationView elementos ahora están disponibles una sola línea para que coincida con la especificación de Material.
  • RecyclerView falla durante la carga previa si el administrador de diseño es nulo.
  • La elevación de BottomNavigationView es que ahora están configurados correctamente. (Problema 226182 de AOSP)
  • BottomNavigationView falla cuando agregar elementos de menú de forma programática. (Problema 225731 de AOSP)
  • Corregir en TextInputLayout a la izquierda y derecha de elementos de diseño compuestos. (Problema 225836 de AOSP)
  • RecyclerView falla cuando se recicla de objetos View. (Problema 225762 de AOSP)
  • Leanback: TalkBack dice con frecuencia la palabra "null". en vistas de pantalla dividida.
  • RecyclerView: problemas de renderización en Android Studio (Problema 225753 de AOSP)
  • Aún se muestra BottomNavigationView el elemento de menú seleccionado después de onNavigationItemSelected() muestra un valor falso. (Problema 225898 de AOSP)
  • ForwardingListener arroja NoSuchMethodError. (AOSP (error 225647)
  • No se muestra TextInputEditText en el modo de extracción IME. (Problema 221880 de AOSP)

Una lista completa de correcciones de errores públicas se encuentra disponible en el Herramienta de seguimiento de errores del AOSP.

Revisión 25.0.0

(octubre de 2016)

Cambios importantes

  • El constructor ContextCompat que están protegidas. No se debe crear una instancia pública de esta clase, pero es posible ampliadas mediante bibliotecas de compatibilidad orientadas a niveles de API más recientes.
  • Se creó el constructor ActivityCompat están protegidos. No se debe crear una instancia pública de esta clase, pero es posible ampliadas con bibliotecas de compatibilidad orientadas a niveles de API más recientes.
  • Se realizó getReferrer(Activity) estática.
  • Se quitó android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V). Cualquier implementación cliente de este método deben quitarse.
  • Se quitó android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object). Los usos deben reemplazarse con "more" al método con el nombre apropiado fromMediaSession()
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) se ha eliminado. Los usos deben reemplazarse con método con nombre MediaSessionCompat.QueueItem#fromQueueItem
  • Se quitó android.support.v7.widget.Space. Usos debe reemplazarse por android.support.v4.widget.Space.

API nuevas

  • Clase android.support.design.widget.BottomNavigationView implementa la parte inferior de navegación de la especificación de Material Design.
  • El nuevo paquete android.support.v13.view.inputmethod incluye clases para acceder a las funciones android.view.inputmethod.InputConnection introducidas después de la API nivel 13.
  • 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 y DecoratedMediaCustomViewStyle, se agregaron clases de duplicación y la API 24 de la plataforma.

Errores corregidos

Una lista completa de correcciones de errores públicas se encuentra disponible en el Herramienta de seguimiento de errores del AOSP.

Revisión 24.2.1

(septiembre de 2016)

Errores corregidos:

Una lista completa de correcciones de errores públicas se encuentra disponible en el Herramienta de seguimiento de errores del AOSP.

Revisión 24.2.0

agosto de 2016

La versión 24.2.0 incluye los siguientes cambios:

Nota: En la versión 24.2.0, se quita la compatibilidad con Android 2.2 (nivel de API 8) y versiones anteriores Las clases y los métodos que existen solo para Ahora, esas versiones del sistema están marcadas como obsoletas y ya no deberían que se usará. Estos métodos y clases obsoletos podrían quitarse en el futuro. lanzamiento.

División de la biblioteca de compatibilidad de la versión 4

En esta versión, la biblioteca de compatibilidad v4 incluye se dividió en varios módulos más pequeños:

support-compat
Proporciona wrappers de compatibilidad para las nuevas APIs de framework, como Context.getDrawable() y View.performAccessibilityAction()
support-core-utils
Proporciona una serie de clases de utilidad, como AsyncTaskLoader y PermissionChecker.
support-core-ui
Implementa una variedad de componentes relacionados con la IU, como ViewPager, NestedScrollView y ExploreByTouchHelper.
support-media-compat
Ofrece portabilidad a versiones anteriores del framework de multimedia. incluidos MediaBrowser y MediaSession.
support-fragment
Portabilidad a versiones anteriores del fragmento en un framework de aplicaciones. Este módulo tiene dependencias en support-compat, support-core-utils, support-core-ui y support-media-compat

Para tener retrocompatibilidad, si enumeras support-v4 en tu de Gradle, tu APK incluirá todos estos módulos. Sin embargo, para reducir del APK, te recomendamos que solo enumeres los módulos específicos que necesita tu app.

Actualizaciones de API

Cambios en el comportamiento

  • Si usas la funcionalidad de día/noche de la biblioteca appcompat, el sistema ahora recrea automáticamente tu actividad cada vez que cambia el modo diurno/nocturno (ya sea debido a la hora del día o a una llamada a AppCompatDelegate.setLocalNightMode()).
  • Snackbar ahora empata detrás del 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. Enrutando el audio a Ahora los dispositivos Bluetooth se controlan únicamente en el nivel del sistema Android.

Bajas

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 de las siguientes clases solo se requerían para el nivel de API 8 y será menor y ya no debería usarse. En su lugar, usa el framework de Google Cloud.
    • android.support.v4.view.KeyEventCompat: Reemplaza con KeyEvent.
    • android.support.v4.view.MotionEventCompat: Usa MotionEvent.
    • android.support.v4.view.ViewCompat: Usa View.
    • android.support.v4.view.ViewConfigurationCompat: Usa ViewConfiguration.
  • AccessibilityServiceInfoCompat.getDescription() dejó de estar disponible y se reemplazó por AccessibilityServiceInfoCompat.loadDescription(), que devuelve una descripción localizada correctamente.
  • No debes crear una instancia de la clase ActivityCompat. directamente. El método getReferrer(Activity) no estático será se volvió estática en una próxima versión.
  • CoordinatorLayout.Behavior.isDirty() dejó de estar disponible y ya no está disponible que llama CoordinatorLayout. Cualquiera de código abierto, así como cualquier llamada a este método.
  • MediaSessionCompat.obtain() dejó de estar disponible y se reemplazó con el método con un nombre más apropiado fromMediaSession()
  • MediaSessionCompat.QueueItem.obtain() dejó de estar disponible y se reemplazó por el método con un nombre más apropiado fromQueueItem()
  • Varias clases abstractas dejaron de estar disponibles y se reemplazaron por interfaces de usuario que reflejen mejor sus equivalentes del framework.
  • CustomTabsSession.setToolbarItem() dejó de estar disponible y se reemplazó por el Basado en RemoteViews setSecondaryToolbarViews()

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 llama a setRefreshing(true) antes del primer pase de medición. (AOSP problema 77712)
  • Evita que TabLayout parpadee cuando cambies de página (AOSP error 180454).
  • Evita ClassNotFoundException para la desalineación. SavedState en el nivel de API 11 y versiones anteriores (problema de AOSP 196,430)

Una lista completa de correcciones de errores públicas se encuentra disponible en el Herramienta de seguimiento de errores del AOSP.

Revisión 24.1.1

julio de 2016

Errores corregidos:

  • Corrige un problema en la versión 24.1.0 que afectaba los IDs de recursos. que se comparten entre las bibliotecas de compatibilidad. Este problema causaba que las apps que dependían de bibliotecas de compatibilidad con recursos (como design y appcompat) para encontrar problemas causados por discrepancias en el ID de recursos.

Revisión 24.1.0

Julio de 2016

Cambios para la asistencia de la versión 4 Biblioteca:

Errores corregidos:

Revisión 24.0.0

junio de 2016

Cambios para la asistencia de la versión 4 Biblioteca:
  • Se agregó el Fragment.commitNow() para la confirmación síncrona
  • Se agregó el NotificationCompat.MessagingStyle para las conversaciones con varias partes
  • Se agregó el NotificationManagerCompat.areNotificationsEnabled() y getImportance().
  • MediaSessionCompat ahora refleja la funcionalidad de MediaSession y ya no llama a setMediaButtonReceiver() automáticamente.

Nota: Solo se admite MediaBrowserServiceCompat en la versión 24.0.0 compatible con versiones futuras de Android más allá de la API 24. Si usas versiones anteriores, actualiza a esta versión para para garantizar la compatibilidad.

Cambios para la v7 appcompat:
  • Se agregó compatibilidad con objetos ColorStateList temáticos de XML
Cambios para la compatibilidad de diseño Biblioteca:
Cambios en la biblioteca Leanback de la versión 17:
  • Se agregó OnboardingFragment para proporcionar la bienvenida de primera ejecución y flujo de configuración
Cambios para las pestañas personalizadas:
  • Se agregó compatibilidad para proporcionar un RemoteViews. jerarquía de la barra de herramientas secundaria
  • Se agregó el CustomTabsClient.connectAndInitialize() para una preparación de una línea

Revisión 23.4.0

Mayo de 2016

Cambios para la asistencia de la versión 4 Biblioteca:
  • 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).
Cambios para la v7 appcompat:
Cambios para la compatibilidad de diseño Biblioteca:
Cambios de la biblioteca de elementos de diseño de vectores:

Revisión 23.3.0

Abril 2016

Cambios para la asistencia de la versión 4 Biblioteca:
  • Se agregó AppLaunchChecker para ayudar a hacer un seguimiento de cómo tu app si el usuario la inició en el pasado. hasStartedFromLauncher() te permite saber si el usuario tiene ejecutaste tu app desde la pantalla de inicio antes o si solo se haya iniciado por otros medios (por ejemplo, para ver contenido URLs).
  • Se corrigió una fuga de memoria en MediaBrowserServiceCompat.mConnections (Problema 205220).
  • Se solucionó el problema por el que ViewPager. no considera los márgenes de las páginas al cambiar de página. (Problema 203816).
  • Se entregó Fragment.onRequestPermissionsResult() al niño o fragmentos.
Cambios para la v7 appcompat:
Cambios para la v7 biblioteca de mediarouter:
Cambios para la preferencia de la versión 7 biblioteca:
Cambios para la v7 Biblioteca de recyclerview:
Cambios para la compatibilidad de diseño Biblioteca:

Revisión 23.2.1

marzo 2016

Cambios para la asistencia de la versión 4 Biblioteca:
Cambios para la v7 appcompat:
  • Se revirtió la dependencia de los recursos vectoriales para que los desarrolladores que usan el appcompat de compilación no se ven obligadas a usar VectorDrawable ni las marcas de compilación asociadas.
  • Se corrigió un problema de compatibilidad con el Modo nocturno y la API nivel 23. (Problema 2019 10).
  • Se solucionó un problema de compatibilidad con SwitchCompat y la API nivel 7. (Problema 201942)
  • Se solucionó un problema con la propagación de valores de configuración en objetos Recursos Error 201928
  • Se corrigió un problema de compatibilidad en el que android.support.v7.app.NotificationCompat.MediaStyle El botón Cancelar se vuelve invisible a nivel de la API. 21 o menos. (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 que no era posible el estilo app:textAllCaps = "false". el trabajo. (Problema 202117)
  • Se corrigió una falla durante el restablecimiento de SearchView. (Problema 201836).
  • Se corrigió una fuga de memoria que se producía cuando se ajustaba el tono de los recursos de elementos de diseño usando AppCompat. (Problema 202379)
  • Se corrigió un problema con KeyEvent en el nivel de API 11 y menor. (Problema 202939)
Cambios para la versión 7 de cardview biblioteca:
Cambios para la v7 Biblioteca de recyclerview:
Cambios para la v7 biblioteca de mediarouter:
Cambios para la versión 17 Biblioteca Leanback:
  • Se solucionó un problema con GridLayout.onAddFocusables() que hizo que se seleccionara el elemento incorrecto.
  • Se solucionó un problema con las acciones de GuidedStepFragment. desaparece cuando se contrae una acción.
Cambios para la compatibilidad de diseño Biblioteca:
Cambios para VectorDrawableCompat:
  • Se corrigió un error en el que se leía la variable incorrecta para android:tintMode. (Problema 201907).

Revisión 23.2.0

Febrero 2016

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó MediaBrowserCompat para compatibilidad con MediaBrowser y MediaBrowserServiceCompat para compatibilidad con MediaBrowserService. Esta información es útil cuando se conecta un servicio en segundo plano de una app multimedia con componentes de IU y la integración con Android Auto y Android Wear sin requerir Nivel de API 21 o versiones posteriores
  • El sistema ahora llama a onActivityResult() para obtener un FragmentActivity anidada.
Cambios para AppCompat de la versión 7 biblioteca:
  • Se agregó la funcionalidad del Modo nocturno a la API nivel 14 y versiones posteriores. Interruptor entre Material Temas claros y de material oscuro según la hora del día la configuración específica de la app.
    • Los temas diurnos y nocturnos se pueden encontrar aquí: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): Establece la 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(): Anulaciones la configuración del modo nocturno para el componente local de la app.
    • AppCompatDelegate.getDefaultNightMode(): Devuelve el modo nocturno predeterminado.
Cambios para mediarouter v7 biblioteca:
Cambios para la biblioteca de compatibilidad de diseño:
  • Se agregó compatibilidad con la parte inferior Hojas de cálculo. Un complemento de interacción, BottomSheetBehavior, permite que una vista secundaria de un CoordinatorLayout actúe como una hoja inferior. La clase base, BottomSheetCallback, proporciona devoluciones de llamada para supervisar eventos de hojas inferiores.
Cambios para la compatibilidad con CustomTabs biblioteca:
  • Chrome Las pestañas personalizadas ahora permiten que las apps incluyan una barra inferior con acciones. además del botón de acción superior existente.
  • CustomTabsIntent.Builder.addToolBarItem(): agrega una acción. en una pestaña personalizada. Puedes usar esta opción para agregar varios botones.
  • CustomTabsSession.setToolBarItem(): Actualiza los elementos visuales. para los elementos de la barra de herramientas. Este método solo tendrá éxito si se le da un un ID válido y la sesión del navegador está en primer plano.
Se agregó una biblioteca de compatibilidad de VectorDrawable:
  • Clases agregadas:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • Se agregó compatibilidad con elementos VectorDrawable a las apps que se ejecutan en el nivel de API 7 o superior. AnimatedVectorDrawable recursos también son compatibles con el nivel de API 11 o versiones posteriores. Los recursos vectoriales es mucho más pequeño que los recursos de imagen y debería ayudar a reducir reduciendo la cantidad de recursos necesarios para admitir varios pantallas de los dispositivos.
  • Ahora, esta biblioteca es una dependencia de la biblioteca AppCompat de la versión 7, lo que permite para desarrolladores y AppCompat para usar fácilmente elementos de diseño vectoriales. Para usar VectorDrawableCompat en una ImageButton o ImageView, usa el XML app:srcCompat atributo o setImageResource() .
  • Para seguir haciendo referencia a los IDs de atributos en el nivel de API 20, o inferior, agrega la siguiente marca appt a tu archivo build,gradle:
    • Si estás compilando con el complemento de Android para Gradle 1.5.0 o inferior, agrega lo siguiente a tu 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 en una versión superior, agrega lo siguiente a tu archivo build.gradle:
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
Cambios para Leanback v17 Biblioteca:
  • Se agregaron nuevas capacidades a GuidedStepFragment, que es un componente que guía a los usuarios a través de una decisión o una serie de decisiones:
    • Se agregaron acciones de botones a GuidedAction:
      • GuidedStepFragment.setButtonActions(): establece una lista de GuidedAction botones que que el usuario puede seleccionar en la vista Actions.
    • Los campos de descripción ahora son editables:
      • GuidedAction.Builder.descriptionEditable(): cuando se pasa true, establece que la descripción de la acción sea editable.
      • GuidedAction.getEditDescription(): Muestra el elemento descripción como CharSequence.
    • Se agregaron listas desplegables de subacciones:
      • GuidedAction.setSubActions(): Establece una lista de GuidedAction como menú desplegable. de subacciones.
  • Se agregó el widget GuidedDatePickerAction para la funcionalidad DatePicker:
    • La fecha se selecciona mediante columnas de año, mes y día, y tiene una variedad personalizable.
    • GuidedDatePickerAction.Builder: Es la clase compiladora para el objeto GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): establece el formato de fecha deseado pasando el valor apropiado String de tres caracteres, p.ej., “YMD” o “MDY”. También puedes usar el atributo XML datePickerFormat.
Cambios para la versión 7 de RecyclerView biblioteca:
  • RecyclerView ahora puede aceptar llamada AutoMeasure que permite que RecyclerView.LayoutManager una fácilmente contenido o manejar varias especificaciones de medición proporcionadas por la superior de RecyclerView. Integra es compatible con todas las capacidades de animación existentes de RecyclerView.
    • Si tienes un RecyclerView.LayoutManager personalizado, llama a setAutoMeasureEnabled(true) para comenzar a usar el nuevo API de AutoMeasure. Todos los objetos RecyclerView.LayoutManager integrados habilitar la medición automática de forma predeterminada.
    • RecyclerView.LayoutManager ya no ignora algunos parámetros de configuración de RecyclerView.LayoutParams, como MATCH_PARENT, en la dirección de desplazamiento.

      Nota: Estas restricciones que se eliminaron podrían provocar un comportamiento inesperado en tus diseños. Asegúrate de especificar los parámetros de diseño correctos.

  • Cuando actualizas un RecyclerView.ViewHolder con carga útil información, DefaultItemAnimator ahora inhabilita las animaciones de cambio.
  • Ahora puedes modificar la velocidad de escape de ItemTouchHelper para controlar la sensibilidad de deslizamiento. Para que sea más fácil o difícil deslizar el dedo, anular getSwipeEscapeVelocity(float defaultValue) y modificar defaultValue

Revisión 23.1.1

noviembre de 2015

Cambios en la biblioteca de recyclerview de la versión 7:
  • Se solucionó un bloqueo que se producía al realizar una acción de deslizar para descartar que La clase de utilidad ItemTouchHelper proporciona y, luego, agrega un elemento. (Problema 190500)
Cambios para la biblioteca de preferencias de la versión 7:
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 clase NavigationView.
  • Se corrigió un problema de fondo transparente para un objeto FloatingActionButton en dispositivos con Android 4.0 (nivel de API 15) y versiones anteriores. (Problema 183315)

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 a la Widget NestedScrollView. Integra te permite recibir devoluciones de llamada cuando cambian las posiciones de desplazamiento de X o Y.
  • Se agregó una clase MediaButtonReceiver para reenviar los controles de reproducción recibidos. a un servicio que administra la clase MediaSessionCompat. El La clase MediaSessionCompat tiene un que puede encontrar automáticamente un receptor de botones multimedia en el manifiesto. R El receptor de botones multimedia es un componente clave para controlar controles de reproducción de hardware o controles de Bluetooth.
Cambios para la biblioteca de appcompat de la versión 7:
  • Se agregaron widgets Seekbar y ImageButton de Material Design.
  • Se actualizó el widget ImageView para admitir la función de ajuste de tono.
  • Se actualizó el aspecto del widget SwitchCompat.
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.
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 un elemento región de un objeto Bitmap.
Cambios en la biblioteca de recyclerview de la versión 7:
  • Se agregó una API de Animation mejorada a la clase ItemAnimator para mejorar la personalizaciones:
    • Las animaciones de cambio ya no aplican dos copias del objeto ViewHolder que habilita animaciones de contenido de elementos. Además, el objeto ItemAnimator decide si quiere reutilizar el mismo objeto ViewHolder o crear un uno nuevo.
    • La nueva API de registro de información le brinda a la clase ItemAnimator la flexibilidad. para recopilar datos en el punto correcto del ciclo de vida de diseño. Esta información aparece más adelante. se pasan 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 tu clase base a SimpleItemAnimator, y tu código debería funcionar como antes. La clase SimpleItemAnimator proporciona la API anterior mediante la agrupación de la API nueva.
    • Se quitaron algunos métodos de la clase ItemAnimator. Lo siguiente dejará de compilarse el siguiente código:
    • 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);
      }
      
Cambios para la versión 7, v14 y Biblioteca de compatibilidad de preferencias v17:
  • Se quitaron las API para controlar los cuadros de diálogo de EditText.
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 extiende android.support.v4.app.Fragment) y mejoras en las animaciones y las transiciones.
  • Se actualizó la clase GuidedStepFragment para que se pueda colocar encima de contenido existente.
  • Se agregó la capacidad de anotar diferentes tipos de finalizaciones de búsquedas en el Clase SearchFragment.
  • Se agregó compatibilidad con la transición escalonada de deslizamiento a VerticalGridFragment. .
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 el elemento SCROLL_FLAG_SNAP constante. Cuando finaliza el desplazamiento, si la vista solo parcialmente visible, la vista se ajusta y se desplaza hasta su borde más cercano.
  • Se agregó compatibilidad con vistas personalizadas a la clase NavigationView mediante el elemento Atributo app:actionLayout o MenuItemCompat.setActionView() .
Cambios para la biblioteca de compatibilidad de pestañas personalizadas:
  • Se agregó el método enableUrlBarHiding() a CustomTabsIntent. . Permite al cliente personalizar si la barra de URL debe ocultarse automáticamente cuando te desplazas hacia abajo.
  • Se agregó el método setActionButton() a CustomTabsSession. . Le permite al cliente cambiar el ícono por un botón de acción personalizado en una pestaña personalizada ya iniciada.
  • Se agregaron las constantes TAB_SHOWN y TAB_HIDDEN como eventos nuevos para el método onNavigationEvent de CustomTabsCallback .

Revisión 23.0.1

septiembre de 2015

Cambios para la versión 7 y Biblioteca de compatibilidad de preferencias v14:
  • 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 problemas de fallas de la clase Fragment limitando el uso de de hardware hasta Android 4.1 (nivel de API 16) y versiones posteriores. (Problema 183896)
  • Se solucionó un problema por el que los botones de hardware no funcionaban cuando una actividad había establecido la Toolbar para que actúe como ActionBar con el método setSupportActionBar() (Problema 183334)
  • Se actualizó la clase AppCompatDialogFragment para que ya no lanza el Windows feature must be requested before adding content . (Problema 183186)
Cambios para la biblioteca de compatibilidad de diseño:
  • Corregimos el AppBarLayout para que se dibuje correctamente después y la rotación de claves. (Problema 183109)
  • Corregimos el TabLayout para que ahora se comporte correctamente cuando se el usuario hace clic después de deslizar el dedo. (Problema 183123)
Cambios para la biblioteca de compatibilidad de pestañas personalizadas:

Revisión 23

agosto de 2015

Se agregaron nuevas bibliotecas de compatibilidad:

Para obtener una lista completa de los cambios de la biblioteca de compatibilidad, consulta la Asistencia Informe de diferencias de las APIs de Biblioteca.

Revisión 22.2.1

julio de 2015

Cambios para la biblioteca de compatibilidad de diseño:
  • Se agregaron los métodos hide() y show() al archivo Clase FloatingActionButton para transacciones programáticas activación de animaciones.
  • Se agregó la constante LENGTH_INDEFINITE al Clase Snackbar para mostrar una barra de notificaciones hasta que se descarte o se muestre otra barra de notificaciones. Además, se agregó el setActionTextColor(int) y setActionTextColor(ColorStateList) .
  • Se agregó el método getSelectedTabPosition() al Clase TabLayout para recuperar el valor pestaña seleccionada.
  • Se proporcionó una API completamente fluida para la Clase android.support.v7.app.NotificationCompat.MediaStyle para el método el encadenamiento.
  • Se agregaron métodos de conveniencia a la RecyclerView para la inserción por lotes de elementos.

Para obtener una lista completa de los cambios de la biblioteca de compatibilidad, consulta la Asistencia Informe de diferencias de las APIs de Biblioteca.

Revisión 22.2.0

mayo de 2015

Se agregó la biblioteca de compatibilidad de diseño:
  • Se agregó TextInputLayout para que se muestre Texto de error y sugerencia de EditText como etiquetas flotantes.
  • Se agregó FloatingActionButton para implementar un acción principal en tu interfaz como botón de acción flotante, que admite tamaños predeterminados o mini.
  • Se agregó Snackbar para proporcionar elementos ligeros. comentarios con una acción opcional en una barra de notificaciones animada.
  • Se agregó TabLayout para implementar configuraciones fijas y desplazable pestañas así como integración con ViewPager
  • Se agregó NavigationView para implementar panel lateral de navegación su contenido, incluida la capacidad de ampliar los elementos del menú con una Recurso de menú.
  • Se agregó CoordinatorLayout, un producto de uso general. de Terraform, que se usa para crear dependencias entre del mismo nivel y permitir reacciones de desplazamiento sencillas entre componentes mediante CoordinatorLayout.Behavior Muchos de los pasos Los componentes de la biblioteca dependen de ser elementos secundarios de un CoordinatorLayout
  • Se agregó AppBarLayout, un contenedor para una Toolbar y otras vistas (como TabLayout) para Reaccionar a los eventos de desplazamiento deslizando el dedo fuera de la pantalla, volviéndose visible en reacción hasta un desplazamiento hacia abajo o que se contraiga o se abra antes de desplazarse hacia afuera o adentro de la pantalla.
  • Se agregó CollapsingToolbarLayout para controlar. cómo se contrae un Toolbar. Una barra de herramientas se puede contraer de la siguiente manera: fijar componentes en la parte superior de la pantalla mientras se contrae, introduciendo desplazamiento con paralaje de componentes como ImageView o agregar un color de lámina de contenido cuando la vista se contrae parcialmente.
Cambios en la biblioteca de compatibilidad de la versión 4:
Cambios para la biblioteca de appcompat de la versión 7:

Para obtener una lista completa de los cambios de la biblioteca de compatibilidad, consulta la Asistencia Informe de diferencias de las APIs de Biblioteca.

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 mostrar valores para inspeccionar los valores que se devuelven de los métodos, los parámetros pasados y los valores variables y campos.
Cambios en la biblioteca de compatibilidad de la versión 4:
Cambios para la biblioteca de appcompat de la versión 7:
Cambios en la biblioteca Leanback de la versión 17:
Cambios en la biblioteca de recyclerview de la versión 7:
Cambios en la biblioteca de renderscript de la versión 8:

Revisión 22

marzo de 2015

Cambios en la biblioteca de compatibilidad de la versión 4:
Cambios para la biblioteca de appcompat de la versión 7:
Cambios en la biblioteca Leanback de la versión 17:
  • Se agregaron getRecycledPoolSize() y Métodos setRecycledPoolSize() para permitir tamaños de grupos reciclados y personalizados.
  • Se agregó el atributo WRAP_CONTENT al configuración de ancho de diseño para admitir contenido ajustado para íconos de título.
  • Se definió R.transition en XML para para mejorar las actualizaciones de la transición.
  • Compatibilidad habilitada para diseños de derecha a izquierda.
  • Se agregó compatibilidad con los eventos clave de reproducción y pausa de contenido multimedia al Clase PlaybackOverlayFragment.
  • Se agregaron las transiciones de entrada y devolución al Clase BrowseFragment y Clase DetailsFragment.
  • Se agregó el método replace() para reemplazar elementos en la matriz de adaptador de un objeto.
Cambios en la biblioteca de mediarouter de la versión 7:
Cambios en la biblioteca de recyclerview de la versión 7:

Revisión 21.0.3

diciembre de 2014

Cambios en la biblioteca de compatibilidad de la versión 4:

Revisión 21.0.2

noviembre de 2014

Cambios en la biblioteca de compatibilidad de la versión 4:
Cambios para la biblioteca de appcompat de la versión 7:
  • Se agregó el constructor PopupMenu para admitir las nuevas ventanas emergentes. menús.
  • Se agregó compatibilidad con una descripción del ícono de contraer en Toolbar. .
  • Se actualizó el widget SearchView para admitir la visualización. commitIcon
  • Se quitó el atributo buttonGravity de Clase Toolbar.
Cambios para la biblioteca de cardview de la versión 7:
Cambios para la versión 7 de recyclerview biblioteca:
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.

Revisión 21.0.1

noviembre de 2014

Agregado multidex para admitir varias Archivos Dalvik Executable (DEX) para admitir archivos multidex anteriores a Android 5.0.

Revisión 21

octubre de 2014

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó compatibilidad con Fragment para dispositivos con Android 5.0 (nivel de API 21). Ten en cuenta que las transiciones no tienen efecto en los dispositivos que se ejecutan Android 4.4 y versiones anteriores.
  • Se agregó DocumentFile para facilitar la transición de File mientras trabajas con árboles de documentos. Sin embargo, esta clase exige más de sobrecarga de procesamiento en comparación con los recursos Se agregó DocumentsContract API en Android 4.4 (nivel de API 19) Por lo tanto, debes usar DocumentsContract cuando se ejecuta en Android 4.4. y versiones posteriores.
Cambios para la versión 7 de appcompat biblioteca:
  • Se agregó compatibilidad con material de diseño.
  • Se agregó Toolbar, que generaliza la funcionalidad de ActionBar para usar dentro de diseños de aplicaciones.
  • Actualizado el ActionBarDrawerToggle, que contiene la animación de menú a flecha
  • Se actualizaron los widgets comunes de la interfaz de usuario para permitir el ajuste de tono a través del tema. atributos cuando se ejecuta en dispositivos con versiones anteriores a Android 5.0
  • Se agregó SwitchCompat, un backport del widget Switch que se agregó en Android 4.0 (nivel de API 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 en los elementos de datos.
Nuevo recyclerview de la versión 7 biblioteca:
  • Se agregó el widget RecyclerView, que proporciona una vista de lista flexible para brindar un período limitado en un gran conjunto de datos.
Nueva biblioteca de paletas versión 7:
  • Se agregó la clase Palette, que te permite extraer colores prominentes de una imagen.
Nueva biblioteca de leanback de la versión 17:

Revisión 20

julio de 2014

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó compatibilidad con notificaciones extendidas para Android Wear en NotificationCompat.WearableExtender, que te permite para especificar funciones específicas de wearables en tus notificaciones.
  • Se agregó NotificationCompat.Action.WearableExtender, que permite agregar acciones en notificaciones de wearables.
  • Se agregó NotificationManagerCompat, lo que te permite para emitir notificaciones que admitan adecuadamente las funciones de wearables.
  • Se agregó RemoteInput, que permite un dispositivo de mano. para recibir la entrada de voz de una notificación que aparece en un dispositivo wearable.
  • Se mejoró el manejo de la respuesta táctil en SwipeRefreshLayout

Revisión 19.1.0

marzo de 2014

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 una gesto de deslizamiento.
  • Se solucionaron problemas de accesibilidad con los paneles laterales de navegación.
Cambios para la biblioteca de appcompat de la versión 7:
  • Se corrigieron problemas de fondo con la barra de acción.

Revisión 19.0.1

diciembre de 2013

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se mejoró PrintHelper agregando asíncrono y el manejo de las impresiones.
  • Se corrigió la aproximación de clase DrawerLayout de addChildrenForAccessibility() .
  • 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.
Cambios en la biblioteca de mediarouter de la versión 7:
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.

Revisión 19

octubre de 2013

Cambios en la biblioteca de compatibilidad de la versión 4:
Cambios en la biblioteca de mediarouter de la versión 7:
  • Se agregó compatibilidad con la puesta en cola de reproducción de contenido multimedia, la configuración de valores de encabezado HTTP y contenido multimedia. la duración de la reproducción.
  • Se agregaron acciones explícitas de inicio, obtención y finalización de sesión para administrar el contenido multimedia de forma explícita. sesiones de reproducción con el router de contenido multimedia.

Revisión 18

julio de 2013

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Interfaz de usuario
    • Se agregó BidiFormatter para el control. cadenas de texto que combinan texto con formato de derecha a izquierda e izquierda a derecha.
    • Se modificó ViewPager para manejar mejor los casos en los que la El carrusel tiene un ancho medido de cero durante el procesamiento de diseño inicial.
    • Se modificaron DrawerLayout y SlidingPaneLayout para no arrojar excepciones para mientras se edita el código del proyecto.
  • Accesibilidad
  • Medios de comunicación
    • Se agregó la clase auxiliar TransportMediator para administrar control de transporte multimedia, como reproducir, pausar, omitir y otras acciones multimedia.
    • Se agregó DisplayManagerCompat para administrar mostrar la salida a una o más pantallas del dispositivo.
  • 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 transferir trabajo a un Service y, al mismo tiempo, garantizar que el dispositivo no vuelva a dormir antes de que se complete la transferencia.
    • Se agregaron dos APIs nuevas, commitContentChanged() y rollbackContentChanged(), a AsyncTaskLoader para ayudan a gestionar actualizaciones en segundo plano de cambios de datos que posteriormente se cancelan.
Nueva biblioteca de appcompat de la versión 7:
  • Se agregó ActionBar para permitir la implementación de la diseño de la interfaz de usuario de la barra de acciones patrón a Android 2.1 (nivel de API 7) y versiones posteriores. Para usar esta clase, se requiere que implementas tu actividad extendiendo la nueva Clase ActionBarActivity.
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 mediarouter library API v7 proporcionan un medio para controlar el enrutamiento de canales multimedia y transmisiones desde el dispositivo actual a pantallas externas, bocinas y otros dispositivos de destino, compatibles con Android 2.1. (nivel de API 7). Consultar la versión 7 mediarouter biblioteca para obtener más información.

Las APIs de la biblioteca mediarouter v7 introducidas en la compatibilidad La biblioteca r18 está sujeta a cambios en revisiones posteriores de la Asistencia. Biblioteca. En este momento, recomendamos usar la biblioteca solo en conexión con el navegador Google Cast Versión preliminar para desarrolladores

Revisión 13

mayo de 2013

Cambios en la biblioteca de compatibilidad de la versión 4:
Nueva biblioteca de gridlayout de la versión 7:
  • Se agregó GridLayout para brindar compatibilidad con el Objeto de diseño GridLayout.
  • Se agregó android.support.v7.widget.Space, que se puede usar para crear áreas en blanco dentro de un objeto de diseño GridLayout.

Revisión 12

febrero de 2013

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 el página incorrecta.
  • Se corrigió el uso del método removeView(). durante el diseño de ViewPager.
  • Se solucionó un problema relacionado con SearchViewCompat por el que se usaba el botón Atrás para descartar no borra el texto de búsqueda. Esta corrección solo se aplica a API de host del nivel 14 o superior.

Revisión 11

noviembre de 2012

Cambios en la biblioteca de compatibilidad de la versión 4:

Revisión 10

agosto de 2012

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó compatibilidad para las funciones de notificación introducidas en Android 4.1 (nivel de API 16) con adiciones a NotificationCompat.

Revisión 9

junio de 2012

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Compatibilidad con interfaz de usuario
    • Se agregó compatibilidad con PagerTabStrip, que proporciona compatibilidad mejorada funcionalidad más allá de PagerTitleStrip.
    • Se corrigieron varios errores de PagerTitleStrip y PagerTabStrip, incluida la opción setAllCaps, la alineación del título, mejoras de aspecto, restricciones de ancho mínimo y problemas de navegación táctil.
    • Se agregó compatibilidad con los medianiles de las páginas ViewPager, que ayuda a la clase ViewPager a proporcionar compatibilidad de paginación para el contenido con un intervalo de desplazamiento horizontal amplio, como un mapa.
    • Se corrigieron varios errores de ViewPager, incluido el tamaño. y cambios en el conjunto de datos, el posicionamiento de la página, la interacción del usuario, el seguimiento de desplazamiento y el teclado problemas de navegación.
    • Se corrigieron muchos errores de Fragment, incluidos los errores manejo de onActivityResult() cuando el fragmento de destino ya no existe, despachar eventos de selección a fragmentos invisibles, Comportamiento de FragmentTransaction.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() en ViewCompat.
    • Se actualizó NavUtils para usar Android 4.1 (nivel de API 16) Función de navegación hacia arriba (cuando esté disponible)
  • Accesibilidad
    • Se actualizaron las clases de compatibilidad de accesibilidad, incluida AccessibilityNodeInfoCompat, para un seguimiento de las correcciones realizadas en Android. 4.1 (nivel de API 16)
    • Se agregó compatibilidad para acciones de desplazamiento de accesibilidad en ViewPager.
  • Mejoras generales

Revisión 8

abril de 2012

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se corrigieron las marcas de intent para los objetos PendingIntent generados. por TaskStackBuilder.
  • Se quitaron los atributos sin usar de los proyectos de la biblioteca de gridlayout para garantizar. la biblioteca se puede compilar con el nivel de API 7 y versiones posteriores.
  • Se agregaron los archivos .classpath y .project para gridlayout. proyecto de biblioteca.

Revisión 7

marzo de 2012

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó ShareCompat, que proporciona clases auxiliares. para enviar y recibir contenido para aplicaciones de uso compartido en redes sociales, incluidos nuevos metadatos para atribuir datos compartidos a la app de origen. Esta clase también proporciona integración compatible con el Nuevo ShareActionProvider en Android 4.0.
  • Se agregaron NavUtils y TaskStackBuilder para brindar compatibilidad con la implementación de la Lineamientos de diseño de Android para la navegación Estos Las adiciones incluyen una forma de implementar el botón Arriba de la barra de acciones en todas las versiones. Para ver una implementación de ejemplo de este patrón, consulta el ejemplo de AppNavigation en (<em><sdk></em>/samples/<em><platform></em>/AppNavigation).
  • Se agregó NotificationCompat.Builder para proporcionar un implementación de compatibilidad de la clase auxiliar Notification.Builder de Android 3.0 para crear notificaciones de sistema estandarizadas.

Revisión 6

diciembre de 2011

Nota: La referencia para las APIs de la biblioteca de compatibilidad ahora está disponible con las referencias del framework, por ejemplo: android.support.v4.app.

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 cadenas de título para páginas, lo que se establece en "no" de forma predeterminada. título de cada página.
    • Se agregó PagerTitleStrip, un título no interactivo que se puede agregar como elemento secundario de ViewPager. Los desarrolladores pueden proporcionar texto la apariencia y el color, así como el tamaño del diseño y la información de gravedad.
    • Se actualizaron los métodos PagerAdapter para tomar ViewGroup. objetos, en lugar de View, para evitar la transmisión de clases en las implementaciones del adaptador.
    • Se actualizó ViewPager para usar el estilo de Selector. de lanzamiento.
    • Se corrigieron errores para la interacción con la interfaz de usuario y la automatización de pruebas.
  • Compatibilidad con fragmentos:
    • Se cambió el método setStartDeferred() a setUserVisibleHint(boolean).
    • Se agregó el inicio diferido de las páginas fuera de la pantalla para mejorar el rendimiento.
  • Compatibilidad con las APIs 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.

Revisión 5

diciembre de 2011

Cambios en la biblioteca de compatibilidad de la versión 4:

Revisión 4

octubre de 2011

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Se agregó EdgeEffectCompat a admite EdgeEffect.
  • Se agregó LocalBroadcastManager para permitir que las aplicaciones puedan registrarse y recibir intents dentro de una única aplicación sin y los transmitimos en todo el mundo.
  • Se agregó compatibilidad en ViewCompat para buscar y configurar el sobredesplazamiento. modos para View en Android 2.3 y versiones posteriores.
  • Cambios en las APIs de Fragment:
    • Se agregaron API nuevas para controlar la visibilidad de los nuevos menús.
    • Se agregaron API de animación personalizadas.
    • Se agregaron APIs en FragmentActivity para retener APIs personalizadas, datos de instancia sin configuración.
    • Se corrigieron varios errores.
  • Se corrigió un error Loader que causaba problemas en Cancelación de elementos AsyncTask cuando se ejecuta en Froyo y versiones anteriores más recientes de la plataforma. La asistencia código ahora usa su propia versión de AsyncTask para mantener la misma en todas las versiones de la plataforma.

Revisión 3

julio de 2011

Cambios en la biblioteca de compatibilidad de la versión 4:
  • Agrega compatibilidad para Fragment.SavedState
  • Agrega MotionEventCompat para admitir API MotionEvent más nuevas
  • Agrega VelocityTrackerCompat para admitir API VelocityTracker más nuevas
  • Agrega ViewConfigurationCompat para admitir API ViewConfiguration más nuevas
  • Todas las APIs nuevas (disponibles solo en la biblioteca de compatibilidad) que te permiten crear IU con paginación horizontal, que permite a los usuarios deslizar el dedo hacia la izquierda y la derecha entre las vistas de contenido. Clases para para admitir esto incluyen:
    • ViewPager: Es un ViewGroup que administra la para las vistas secundarias, entre las que el usuario puede deslizar el dedo.
    • PagerAdapter: Un adaptador que propaga el ViewPager con el vistas que representan cada página.
    • FragmentPagerAdapter: Es una extensión de PagerAdapter para girar. entre fragmentos.
    • FragmentStatePagerAdapter: Es una extensión de PagerAdapter para Cambiar entre fragmentos que usa la compatibilidad de la biblioteca para Fragment.SavedState
Nueva biblioteca de compatibilidad de la versión 13:
  • Incluye FragmentPagerAdapter y FragmentStatePagerAdapter para admitir la paginación horizontal.

    Estas son exactamente las mismas que las APIs agregadas a la biblioteca de compatibilidad v4, 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 APIs de la biblioteca v4 ya están disponibles con nivel de API 13).

Revisión 2

mayo de 2011

Cambios para la biblioteca de la versión 4:

Revisión 1

marzo de 2011

Versión inicial con la biblioteca de la versión 4.