En Figma, las variantes se utilizan para agrupar diferentes variaciones de el mismo componente, como diferentes estados o tamaños. Reservas de retransmisión las variantes de un componente cuando se traduce a código. En esta sección, veremos cómo Relay maneja variantes en los diseños.
Punto de partida
![Tarjeta de noticias con variantes de árbol](https://developer.android.com/static/develop/ui/compose/tooling/relay/images/design-variants/news-card-with-variants.png?authuser=9&hl=es)
Comenzaremos con un archivo de Figma que contiene un componente Tarjeta de noticias con tres variantes:
- hero-item para el artículo de noticias más importante
- article-item es para un artículo típico.
- audio-item es para un artículo que escuchas en lugar de leerlo.
Cómo copiar el ejemplo de Figma
A modo de ejemplo para este instructivo, usaremos un archivo existente de Figma. Asegúrate de haber accedido a tu cuenta de Figma.
- Descarga HelloNews.fig en la computadora.
En Figma, ve al navegador de archivos. Del lado izquierdo, coloca el cursor sobre Borradores. Aparecerá un ícono +. Haz clic en el ícono + y, luego, en Importar. Selecciona el archivo HelloNews.fig que acabas de descargar. Esto puede tardar desde 10 segundos hasta un minuto.
Abre el archivo importado en Figma.
Cómo crear un paquete de IU
El complemento Relay for Figma agrega información adicional a nuestro componente para que podamos trabajar con nuestros desarrolladores, que usarán nuestro componente en su código.
- Abre el complemento Relay for Figma en tu archivo (en la barra de menú: Plugins > Relay) para Figma). Haz clic en Comenzar.
Selecciona el componente y haz clic en Create UI Package.
Con el paquete de IU seleccionado, agrega una descripción al cuadro de resumen. Para por ejemplo, “Componente de tarjeta de noticias destinado a mostrar artículos de noticias en una lista”.
Cómo guardar una versión con nombre
Ahora que creaste un paquete de IU, prepara tu componente para compartirlo con el equipo de desarrollo.
- Abre el complemento Figma Relay, si aún no está abierto.
- Haz clic en Compartir con el desarrollador.
- Desde la pantalla Compartir con el desarrollador, puedes ingresar un nombre de versión y una descripción nuevos en la sección Guardar el historial de versiones.
Haz clic en Guardar.
Título de ejemplo: Tarjeta nueva inicial
Descripción de ejemplo: Primera iteración de los artículos de noticias
Descarga el proyecto de Android Studio
Para la parte de Android Studio de este instructivo, usaremos un modelo Proyecto de Android Studio Este proyecto contiene una app que muestra artículos de noticias en formato de texto sin formato.
- Descarga el archivo de muestra HelloNews.zip.
- Haz doble clic en el archivo para descomprimirlo, lo que creará una carpeta llamada HelloNews. Muévela a tu carpeta principal.
- Vuelve a Android Studio. Ve a Archivo > Abrir, navega hasta tu casa selecciona HelloNews y haz clic en Open.
- Cuando abras el proyecto, Android Studio te preguntará si confías en él. Haz clic en Trust Project.
Cómo importar a Android Studio
Importaremos nuestro componente de Figma al proyecto.
De vuelta en Figma, copia la URL del archivo de Figma del instructivo de tarjeta de noticias. Más tarde usar esta URL para importar nuestros componentes. En la esquina superior derecha de Figma, haz clic en el botón Share. En el cuadro de diálogo que se abre, haz clic en Copiar vínculo.
Cambia al proyecto HelloNews en Android Studio. Ve a Archivo > Nuevo > Importar UI Packages... en la barra de menú de Android Studio.
Pega la URL del archivo de Figma y haz clic en Next.
- .
- Una vez que el archivo termine de recuperarse (lo que puede tardar un poco), haz clic en Finalizar.
Haz clic en
para compilar tu proyecto. Este proceso puede tardar aproximadamente un minuto.
Obtener vista previa de la app y componente
En la vista de Android, abre
app/java/com/example/hellonews/ui/home/HomeScreen.kt
, Verás una vista previa de la app, que muestra varios artículos de noticias en una Formato de texto sin formato, con historias impresas sobre historias de audio.Abre
app/java (generated)/com/example/hellonews/newscard/NewsCard.kt
. Esta es el código de Jetpack Compose generado para nuestro componente de Figma. Desde vemos que tres variantes del componente NewsCard tienen de Figma al código. Analicemos con más detalle el código.La enumeración
View
nos permite elegir qué variante usar para este componente. El nombre de la enum y sus valores derivan de las variantes de nuestra componente de Figma. Se utiliza en el parámetroview
de nuestra NewsCard. componible.El elemento componible NewsCard se generó a partir del paquete de IU. Incluye un parámetro de tipo
View
, que establece la variante de la tarjeta de noticias en crear una instancia.package com.example.myapplication.newscard import ... // Design to select for NewsCard enum class View { HeroItem, ArticleItem, AudioItem } /** * News card component intended to display news items for a list. * * This composable was generated from the UI Package 'news_card'. * Generated code; do not edit directly */ @Composable fun NewsCard( modifier: Modifier = Modifier, view: View = View.HeroItem ) {...}
Cuál es el próximo paso
Todavía no podemos usar NewsCard. El componente no sabe para mostrar diferentes noticias, solo la misma codificada en Figma. Entonces, si agregaríamos el componente ahora, todo lo que obtendríamos es la misma noticia repetido. Necesitamos una forma de especificar qué partes de NewsCard se deben completar. con datos dinámicos.
En esta sección, agregaremos parámetros de contenido al componente NewsCard.
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Parámetros de contenido
- Desplazamiento
- Cómo usar Compose en Views