Compose Material 3

Compila las IU de Jetpack Compose con componentes de Material Design 3, la próxima evolución de Material Design. Material 3 incluye temas y componentes actualizados, y funciones de personalización de Material You, como el color dinámico. Además, se diseñó para ser coherente con el nuevo estilo visual y la IU del sistema de Android 12.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
20 de abril de 2022 - - - 1.0.0-alpha10

Estructura

Compose es una combinación de 7 ID de grupo de Maven en androidx. Cada grupo contiene un subconjunto de funcionalidades objetivo, cada uno con su propio conjunto de notas de la versión.

En esta tabla, se explican los grupos y vínculos correspondiente a cada conjunto de notas de la versión.

GrupoDescripción
compose.animationCrea animaciones en sus aplicaciones de Jetpack Compose para enriquecer la experiencia del usuario.
compose.compilerTransforma las funciones que admite @Composable y habilita las optimizaciones con un complemento de compilador de Kotlin.
compose.foundationEscribe aplicaciones de Jetpack Compose con componentes fundamentales listos para usar y extiende la base para compilar tus propias piezas de sistema de diseño.
compose.materialCompila las IU de Jetpack Compose con componentes de Material Design listos para usar. Este es el punto de entrada de nivel superior de Compose, diseñado para proporcionar componentes que coincidan con los descritos en www.material.io.
compose.material3Compila las IU de Jetpack Compose con componentes de Material Design 3, la próxima evolución de Material Design. Material 3 incluye temas y componentes actualizados, y funciones de personalización de Material You, como el color dinámico. Además, se diseñó para ser coherente con el nuevo estilo visual y la IU del sistema de Android 12.
compose.runtimeSe trata de los componentes fundamentales del modelo de programación de Compose y de su administración de estados, así como del entorno de ejecución principal al cual se orienta el complemento de compilación de Compose.
compose.uiSon los componentes fundamentales de la IU de Compose necesarios para interactuar con el dispositivo, incluidos el diseño, el dibujo y la entrada.

Cómo declarar dependencias

Para agregar una dependencia en Compose, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

dependencies {
    implementation "androidx.compose.material3:material3:1.0.0-alpha10"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.0.0-alpha10"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material3:material3:1.0.0-alpha10")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.0.0-alpha10"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.0

Versión 1.0.0-alpha10

20 de abril de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha10 y androidx.compose.material3:material3-window-size-class:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.

Nuevas funciones

  • material3-window-size-class es una nueva biblioteca que proporciona compatibilidad con las clases de tamaño de ventana: un conjunto de puntos de interrupción de viewports bien definidos para que puedas diseñar, desarrollar y poner a prueba diseños de aplicaciones de tamaño variable. Puedes usar calculateWindowSizeClass para recuperar una instancia de la clase de tamaño de ventana, que puedes usar a fin de determinar la apariencia de tu IU, por ejemplo, si quieres mostrar un riel de navegación en lugar de una barra de navegación inferior para tamaños de ventana más grandes. Para obtener más información y un ejemplo de uso, consulta la documentación de referencia de la API para WindowSizeClass. Si quieres obtener más información sobre las definiciones de la clase de tamaño de ventana, consulta la guía pública sobre la compatibilidad con diferentes tamaños de pantalla.

Cambios en la API

  • Se agregó la elevación predeterminada del BAF para BottomAppBar y se quitó la lambda al final de BottomAppBar con el BAF (I92c47).
  • Se agregaron los elementos FilledIconButton, FilledTonalIconButton y OutlinedIconButton de Material3 (Ib2bda).
  • Se actualizó la API de la barra de notificaciones de Material 3 a fin de aceptar valores de color para la acción opcional y la acción de descarte (Ibe4b4).
  • El consumo parcial (de posición abajo O) ya no está disponible en PointerInputChange. Puedes usar consume() para consumir el cambio por completo. También puedes usar isConsumed para determinar si otra persona ya consumió el cambio.
  • Ahora, PointerInputChange::copy() siempre crea una copia profunda. Significa que se consumirán copias de PointerInputChange una vez que se consuma una de las copias. Si quieres crear una PointerInputChange no vinculada, usa un constructor (Ie6be4, b/225669674).
  • Cambios en la API de Cards para recibir los colores del contenedor y el contenido a través de una interfaz CardColors. Además, se busca admitir un estado inhabilitado para tarjetas en las que se puede hacer clic (I927df).
  • Se cambió el nombre del parámetro backgroundColor a containerColor en los campos de texto de Material 3 para mejorar la coherencia con otros componentes (I6fbd9).

Correcciones de errores

  • Se actualizó el elemento IconButton estándar para alinearlo con la especificación de Material 3 (I09eab).
  • Se movió la altura de la barra superior del andamiaje de Material 3 al relleno que se pasa al contenido, lo que permite que este último se procese debajo de la barra superior de la app. Si se ignora PaddingValues, es posible que la barra superior oculte el contenido (I83cbc, b/217776202).

Versión 1.0.0-alpha09

6 de abril de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó la API de Material 3 Switch. (I2c3ad)

Cambios en la API

  • Se agregó compatibilidad con menús desplegables con campos de texto (también conocidos como "menús desplegables expuestos" o "cuadros combinados"). (I1b832)
  • Se agregó el parámetro de forma al subsistema MaterialTheme y Shape. (I37426)
  • Se agregó un parámetro expandido a ExtendedFloatingActionButton para controlar si el BAF está expandido o contraído, con animaciones entre cada estado. Se agregó la sobrecarga extendida del BAF para los BAF extendidos con texto final para ExtendedFAB sin ícono. (Iba7f1)

Versión 1.0.0-alpha08

23 de marzo de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con los campos de texto de Material 3. (I795cc, b/199377790)

Cambios en la API

  • Se agregó un divisor predeterminado para el menú. (I01374)
  • Se agregó el parámetro de color surfaceTint a la clase ColorScheme. (I2f558)

Correcciones de errores

  • Se corrigió en el botón de Material3 para leer su valor de estilo de texto predeterminado desde MaterialTheme. (Ie62fc)

Versión 1.0.0-alpha07

9 de marzo de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.

Cambios en la API

  • Actualizaciones en la API de Material 3 que muestran las funciones sobrecargadas para las superficies en las que se puede hacer clic. Además, se agregó una función para admitir superficies seleccionables y que se pueden activar o desactivar (I4bf18).
  • LazyVerticalGrid y LazyHorizontalGrid ahora son estables (I307c0).
  • LazyVerticalGrid/LazyHorizontalGrid y todas las APIs relacionadas se movieron al subpaquete .grid. Actualiza tus importaciones de androidx.compose.foundation.lazy a androidx.compose.foundation.lazy.grid (I2d446).
  • Se revirtió el cambio anterior de depender solo de una View para WindowInsetsControllerCompat y, de nuevo, se requiere una Window, necesaria para administrar algunas marcas de ventana. Se dio de baja ViewCompat.getWindowInsetsController y se reemplazó por WindowCompat.getInsetsController para garantizar que se use la Window correcta (por ejemplo, si la View está en un diálogo) (I660ae, b/219572936).
  • Se agregó una nueva API de LazyVerticalGrid para definir tamaños de ejes cruzados (I17723).

Correcciones de errores

  • Se realizaron actualizaciones en la API de Card para seguir los cambios en la API de Surface (I3c8b9).

Versión 1.0.0-alpha06

23 de febrero de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Cambios en la API

  • Se agregó NavigationDrawerItem, que representa un solo destino dentro de los paneles laterales (Ic396f, b/218286829).
  • Se agregaron PermanentNavigationDrawer y DismissibleNavigationDrawer como API experimentales. Son los paneles laterales adecuados para dispositivos con pantallas grandes (I5f8ab, b/218286829).
  • Se agregó compatibilidad con la barra de la app inferior de Material 3 (Ic432a).
  • Se modificó el nombre de NavigationDrawer por ModalNavigationDrawer (I1807d, b/218286829).
  • Se agregaron tokens y clase del control deslizante de Material 3 (I1ccee).
  • Se agregó la implementación de pestaña. Consulta la documentación para ver un ejemplo de cómo se usa (Ie0146).

Correcciones de errores

  • Se solucionó un problema por el que la navegación lineal del lector de pantalla TalkBack seleccionaba un título vacío de la barra de la app superior (Id4690).
  • Se agregó IconSize a FloatingActionButtonDefaults (Ia71cf).
  • Se corrigió un error de botones AlertDialog ocultos cuando se agregaba un texto largo con LazyColumn (Ib2cc9, b/216663029).

Versión 1.0.0-alpha05

9 de febrero de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

Se agregaron componentes de Material Design 3.

Cambios en la API

  • Se dio de baja la función Surface que toma una devolución de llamada onClick. Las superficies en las que se puede hacer clic deben crearse con una InteractionSource y un Modifier.clickable() (I211c6).
  • Se agregó compatibilidad la con elevación enfocada y presionada de BAF (Ibb584).
  • Se modificó la API de Surface para recibir una InteractionSource que permita controlar su apariencia en diferentes estados (Iafbc8).

Correcciones de errores

  • Se agregaron los colores terciarios faltantes en los esquemas de colores dinámicos (I456c4, b/214588434).

Versión 1.0.0-alpha04

26 de enero de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Cambios en la API

  • Se agregó NonRestartableComposable a los métodos que son sobrecargas de métodos existentes sin lógica compleja. De esta manera, se reducen las comprobaciones de memorización generadas por el compilador (es igual a) para todos los parámetros que se repiten en la función interna a la que se llama. (I90490)
  • Se agregó el divisor de Material 3. (Ica5fc)
  • Marca Checkbox y RadioButton con una anotación de API experimental. (Ie44bb)
  • Se agregó compatibilidad con los indicadores de progreso de Material 3. (Iff232, b/205023841)

Correcciones de errores

  • Se actualizó un color inhabilitado del contenedor TextButton's para que sea transparente. (I6b248, b/213339737)

Versión 1.0.0-alpha03

12 de enero de 2022

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Correcciones de errores

  • Se agregó LocalIndication a MaterialTheme de Material 3. (I7ce4e)
  • Se corrigió el radio de esquina que se aplica a las casilla de verificación. (I38b03, b/175198975, b/202309440)

Actualizaciones de dependencias

  • Ahora depende de Kotlin versión 1.6.10.

Versión 1.0.0-alpha02

1 de diciembre de 2021

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con la casilla de verificación y el botón de opción.
  • Se actualizó para que sea compatible con Kotlin 1.6.0.

Cambios en la API

  • Se quitó el panel lateral del andamiaje de Material 3 (I04f51).
  • Se agregó compatibilidad con Checkbox de Material 3 (Id5542).
  • Se agregó compatibilidad con RadioButton de Material 3 (I20334).

Correcciones de errores

  • Se redujo el radio de las ondulaciones de IconButton de 40 dp a 20 dp (I68bbe, b/206674345).
  • La ruta de acceso rápida de la string de puerto para Text cambió desde compose.material (I30b03).
  • Se corrigió el elemento, pero ese botón codificado siempre aparecerá como habilitado (Iea832, b/205335456).

Versión 1.0.0-alpha01

27 de octubre de 2021

Lanzamiento de androidx.compose.material3:material3:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

Temas de Material Design 3 y color dinámico de Material You

Componentes de Material Design 3

Para más información, consulta la sección de Material Design 3 y Material You en la guía sobre temas de Material en Compose.