Compose Material 3
androidx.compose.material3
(Puedes ver todos los paquetes de Compose en los documentos de referencia de la API)
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.
Grupo | Descripción |
---|---|
compose.animation | Crea animaciones en sus aplicaciones de Jetpack Compose para enriquecer la experiencia del usuario. |
compose.compiler | Transforma las funciones que admite @Composable y habilita las optimizaciones con un complemento de compilador de Kotlin. |
compose.foundation | Escribe 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.material | Compila 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.material3 | 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. |
compose.runtime | Se 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.ui | Son 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" implementation "androidx.compose.material3:material3-window-size-class:1.0.0-alpha10" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.2.0-alpha08" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material3:material3:1.0.0-alpha10") implementation("androidx.compose.material3:material3-window-size-class:1.0.0-alpha10") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.2.0-alpha08" } 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.
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 usarcalculateWindowSizeClass
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 paraWindowSizeClass
. 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 deBottomAppBar
con el BAF (I92c47). - Se agregaron los elementos
FilledIconButton
,FilledTonalIconButton
yOutlinedIconButton
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 usarconsume()
para consumir el cambio por completo. También puedes usarisConsumed
para determinar si otra persona ya consumió el cambio. PointerInputChange::copy()
ahora siempre hace una copia superficial. Significa que se consumirán copias dePointerInputChange
una vez que se consuma una de las copias. Si quieres crear unaPointerInputChange
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
acontainerColor
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 claseColorScheme
. (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
yLazyHorizontalGrid
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 bajaViewCompat.getWindowInsetsController
y se reemplazó porWindowCompat.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
yDismissibleNavigationDrawer
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
porModalNavigationDrawer
(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
aFloatingActionButtonDefaults
(Ia71cf). - Se corrigió un error de botones
AlertDialog
ocultos cuando se agregaba un texto largo conLazyColumn
(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.
- Menú desplegable
- Tarjetas
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 unaInteractionSource
y unModifier.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
aMaterialTheme
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ó desdecompose.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
- Botones
- BAF y BAF extendido
- Diálogos
- Barra de navegación
- Panel lateral de navegación
- Riel de navegación
- Barra superior de la app
- Distintivo
- Ícono
- Texto
- Plataforma
- Diseño
- Color del contenido
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.