¿Qué hay de nuevo en el lanzamiento del 23 de marzo de Jetpack Compose?



Escrito por Jolanda VerhoefIngeniero de relaciones con desarrolladores de Android

Como parte de la lista de materiales de Compose de marzo de 2023, hoy lanzamos la versión 1.4 de Jetpack Compose, el moderno kit de herramientas de interfaz de usuario nativo de Android utilizado por aplicaciones como Booking.com, Pinterest y Airbnb. Esta versión incluye nuevas características como buscapersonas Y diseños de flujoy nuevas formas de aplicar estilo a su texto, como separación Y comportamiento de nueva línea. También mejora el rendimiento de los modificadores y corrige una serie de errores.

Deslícese por el contenido con el nuevo buscapersonas componible

Componer ahora incluye Soporte listo para usar para paginación vertical y horizontal entre diferentes contenidos. Usar localizador vertical o Paginador horizontal permite una funcionalidad similar a la Ver paginador en el sistema de visualización. Sin embargo, al igual que los beneficios de usar LazyRow Y Columna perezosaYa no es necesario crear adaptadores o fragmentos! Puedes incrustar un componible en el buscapersonas:


HorizontalPager(pageCount = 10) { page ->

Text(
text = "Page: $page",
modifier = Modifier.fillMaxWidth()
)
}

TEXTO ALTERNATIVO

Estos componibles reemplazan la implementación en la biblioteca Accompanist. Si ya está utilizando la implementación de Accompanist, lea la guía de migración. Consulte la documentación del buscapersonas para obtener más información.

Haz que tu contenido fluya con nuevos diseños de flujo

fila de flujo Y columna de flujo ofrecer un eficiente y compacto Organizar elementos en un contenedor cuando el tamaño de los elementos o del contenedor es desconocido o dinámico. Estos contenedores permiten que los artículos fluyan a la siguiente fila fila de flujo o la siguiente columna en el columna de flujo cuando se quedan sin espacio. Estos diseños de flujo también permiten el dimensionamiento dinámico utilizando pesos para distribuir los artículos en el contenedor.

Aquí hay un ejemplo que implementa una lista de filtros para una aplicación de bienes raíces:

TEXTO ALTERNATIVO

@Composable
fun Filters() {
val filters = listOf(
"Washer/Dryer", "Ramp access", "Garden", "Cats OK", "Dogs OK", "Smoke-free"
)
FlowRow(
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
filters.forEach { title ->
var selected by remember { mutableStateOf(false) }
val leadingIcon: @Composable () -> Unit = { Icon(Icons.Default.Check, null) }
FilterChip(
selected,
onClick = { selected = !selected },
label = { Text(title) },
leadingIcon = if (selected) leadingIcon else null
)
}
}
}

Mejoras de rendimiento en los modificadores.

El gran refactor de modificadores internos que comenzamos en el lanzamiento de octubre ha continuado con el Migración de varios modificadores básicos a lo nuevo Modificador.Nodo arquitectura. Este contiene Capa de gráficosmodificadores de enfoque de nivel inferior, tapicería, desplazada, y más. Esta refactorización debería generar mejoras en el rendimiento de estas API, y no necesita cambiar su código para aprovechar estos beneficios. El trabajo en esto continúa, y esperamos aún más ganancias en versiones futuras a medida que migramos los modificadores fuera de Guau Módulo. Obtenga más información sobre la lógica detrás de los cambios en Deep Dive on ADS Talk Compose Modifiers.

Mayor flexibilidad de texto Y caja de texto

Junto con varias mejoras de rendimiento, estabilización de API y corrección de errores, el escribir texto La versión 1.4 trae soporte para el última versión de emojis, incluida la compatibilidad con versiones anteriores de Android 🎉🙌. No se requieren cambios en su aplicación para respaldar esto. Si está utilizando una solución de emoji personalizada, asegúrese de verificarla PlatformTextStyle(emojiSupportMatch).

Además, hemos abordado uno de los principales puntos débiles del uso caja de texto. En algunos escenarios, un cuadro de texto desplazable Dividir o Columna perezosa estaría cubierto por el teclado en pantalla después de enfocar. Hemos reelaborado partes centrales de la lógica de desplazamiento y enfoque y API clave como Contenedor acoplable para corregir este error.

Finalmente, agregamos muchas nuevas opciones de personalización. texto y se estilo de texto:

  • Jalar texto delineado usar TextStyle.drawStyle.
  • mejorar los textos Transición y legibilidad en animaciones usar TextStyle.TextMotion.
  • Configurar comportamiento de nueva línea usar TextStyle.lineBreak. Use configuraciones semánticas integradas como titular, Unidad de volumeno Simplementeo construye el tuyo propio nueva línea configuración con el deseado estrategia, austeridadY Salto de palabra Valores.
  • añadir Admite guiones usar TextStyle.guiones.
  • Definir un número mínimo de líneas visibles Uso de minrows parámetros de texto Y caja de texto componible
  • Dale movimiento a tu texto aplicando el BasicMarquee modificador Como beneficio adicional, dado que se trata de un modificador, ¡puedes aplicarlo a cualquier componible para que se mueva como una marquesina!
  • TEXTO ALTERNATIVO
    Texto de marquesina usando contornos con formas estampadas en ellos usando dibujarEstilo API.

Mejoras y correcciones para las funciones principales

En respuesta a los comentarios de los desarrolladores, implementamos algunas funciones y correcciones muy solicitadas en nuestras bibliotecas principales:

  • Prueba esperar hasta acepta un emparejador ahora! Puede utilizar esta API para Sincronice fácilmente su prueba con su interfaz de usuariocon ciertas condiciones que tú definas.
  • contenido animado ahora admite correctamente ser interrumpido y volver al estado anterior.
  • Orden de enfoque mejorado de los servicios de accesibilidad: el El orden ahora es más lógico en situaciones comunes como B. en las barras superior/inferior.
  • AndroidVer ahora es reutilizable en lista de espera si especifica uno opcional onReset lambda. Esta mejora le permite usar vistas complejas no basadas en composición dentro Listas perezosas.
  • Rendimiento de color.lerp ha sido mejorado y ahora hace cero asignaciones: dado que este método se llama con mucha frecuencia durante las animaciones de desvanecimiento, esto debería reducir la cantidad de pausas en la recolección de elementos no utilizados, especialmente en versiones anteriores de Android.
  • Muchos otros API menores y correcciones de errores como parte de una limpieza general. Para obtener más información, consulte las notas de la versión.

¡Empezando!

Agradecemos todos los informes de errores y las solicitudes de funciones enviadas a nuestro rastreador de problemas; nos ayudan a mejorar Compose y crear las API que necesita. ¡Sigue proporcionando tus comentarios y ayúdanos a mejorar Compose!

¿Se pregunta qué sigue? Consulte nuestra hoja de ruta actualizada para ver en qué características estamos pensando y trabajando actualmente. ¡Estamos ansiosos por ver lo que construyes a continuación!

¡Diviértete componiendo!



Si quieres conocer otros artículos parecidos a ¿Qué hay de nuevo en el lanzamiento del 23 de marzo de Jetpack Compose? puedes visitar la categoría Android.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir