En esta página, se describe cómo compilar los componentes y la estructura de una tarjeta. Las tarjetas son interfaces de usuario que las apps de Google Chat pueden usar para presentar y recopilar información de los usuarios de Chat. Las apps de Chat pueden compilar y mostrar tarjetas en las siguientes interfaces:
- Mensajes que contienen una o más tarjetas
- Páginas principales: Es una tarjeta que aparece en la pestaña Página principal en los mensajes directos con la app de Chat.
- Diálogos, que son tarjetas que se abren en una ventana nueva desde los mensajes y las páginas principales.
En esta página, aprenderás sobre los siguientes componentes de una tarjeta:
- Encabezados, que suelen contener el título de una tarjeta o sección.
- Secciones, que forman el cuerpo principal de la tarjeta, incluidos los widgets y otros elementos interactivos. En una sección de tarjeta, puedes agregar más estructura a la tarjeta, incluidas columnas y cuadrículas.
- Pies de página fijos, que aparecen en la parte inferior de los diálogos para mostrar elementos persistentes de la IU, como botones.
Requisitos previos
Una app de Google Chat habilitada para funciones interactivas Para crear una app de Chat interactiva, completa una de las siguientes guías de inicio rápido según la arquitectura de la app que quieras usar:
- Servicio HTTP con Google Cloud Functions
- Google Apps Script
- Dialogflow CX de Google Cloud
- Google Cloud Pub/Sub
Usa el Creador de tarjetas para diseñar y obtener una vista previa de las interfaces de usuario y de mensajería de las apps de Chat:
Abre el Creador de tarjetasAgregar un encabezado
El widget CardHeader
representa el encabezado de una tarjeta. Los encabezados pueden incluir un título, un subtítulo y una imagen de avatar para tu tarjeta.
El siguiente es un ejemplo de un CardHeader
:
Agrega una o más secciones de tarjetas
El widget CardSection
es un contenedor de alto nivel dentro de una tarjeta. Usas las secciones de tarjeta para agrupar widgets dentro de una tarjeta. Para cada sección de la tarjeta, puedes incluir un encabezado y uno o más widgets.
El siguiente es un ejemplo de un CardSection
que contiene dos widgets textParagraph
:
Agrega un divisor horizontal entre los widgets
El widget divider
muestra una línea horizontal que abarca el ancho de una tarjeta entre widgets apilados verticalmente. La línea es un divisor visual que ayuda a los usuarios a distinguir entre un widget y otro, lo que facilita la lectura y la comprensión de las tarjetas.
La siguiente es una tarjeta que consta de un widget divider
entre otros tipos de widgets:
Agregar columnas
El widget columns
muestra hasta 2 columnas en una tarjeta. Puedes agregar widgets a cada columna. Los widgets aparecen en el orden en que se especifican.
Para incluir más de 2 columnas o usar filas, usa el widget grid
.
La altura de cada columna se determina según la columna más alta. Por ejemplo, si la primera columna es más alta que la segunda, ambas columnas tienen la altura de la primera. Debido a que cada columna puede contener una cantidad diferente de widgets, no puedes definir filas ni alinear widgets entre las columnas.
En el siguiente ejemplo, se muestra una tarjeta con un widget columns
que incluye 2 columnas de texto. Para ver solo el diseño de las columnas y contraer el ejemplo de código, haz clic en Contraer.
Cuando el espacio es limitado, como en el siguiente ejemplo, la segunda columna se une debajo de la primera.
Define el ancho de la columna
Las columnas se muestran una al lado de la otra. Puedes personalizar el ancho de cada columna con el campo horizontalSizeStyle
.
Si el ancho de la pantalla del usuario es demasiado estrecho, la segunda columna se une debajo de la primera:
- En la Web, la segunda columna se une si el ancho de la pantalla es inferior o igual a 480 píxeles.
- En dispositivos iOS, la segunda columna se une si el ancho de la pantalla es inferior o igual a 300 pt.
- En dispositivos Android, la segunda columna se une si el ancho de la pantalla es inferior o igual a 320 dp.
En el siguiente ejemplo, se muestra una tarjeta con un widget columns
que incluye 2 columnas de texto con 4 elementos en las columnas. A cada elemento de las columnas se le aplicó horizontalSizeStyle
para manipular la cantidad de espacio que el texto ocupa en cada columna:
- El primer párrafo de texto usa
FILL_MINIMUM_SPACE
para ocupar no más del 30% del ancho de la tarjeta. - El segundo párrafo de texto usa
FILL_AVAILABLE_SPACE
para completar el espacio disponible en el ancho de la tarjeta. En este ejemplo, ocupa el 70% del ancho de la tarjeta. - El tercer párrafo de texto no define
horizontalSizeStyle
, por lo que, de forma predeterminada, se usa para llenar el espacio disponible de la tarjeta. - El cuarto párrafo de texto usa
FILL_MINIMUM_SPACE
para ocupar no más del 30% del ancho de la tarjeta.
Define la alineación horizontal de una columna
Para alinear los widgets horizontalmente a la izquierda, a la derecha o en el centro de una columna, define el campo horizontalAligment
.
Si el campo horizontalAlignment
no está definido, los widgets se alinean a la izquierda en una columna.
En el siguiente ejemplo, se alinea horizontalmente el texto dentro de una columna a la izquierda:
En el siguiente ejemplo, se alinea horizontalmente el texto dentro de una columna en el centro:
En el siguiente ejemplo, se alinea horizontalmente el texto dentro de una columna a la derecha:
Define la alineación vertical de una columna
Para alinear los widgets verticalmente en la parte superior, inferior o central de una columna, define el campo verticalAlignment
.
Si el campo verticalAlignment
no está definido, los widgets de una columna se alinean en la parte superior.
En el siguiente ejemplo, se alinea verticalmente el texto dentro de una columna en la parte superior:
En el siguiente ejemplo, se alinea verticalmente el texto dentro de una columna en el centro:
En el siguiente ejemplo, se alinea verticalmente el texto dentro de una columna en la parte inferior:
Cómo agregar una cuadrícula para mostrar una colección de elementos
El widget grid
muestra una cuadrícula con una colección de elementos. Una cuadrícula admite cualquier cantidad de columnas y elementos. La cantidad de filas se determina según los elementos divididos por las columnas.
Una cuadrícula con 10 elementos y 2 columnas tiene 5 filas. Una cuadrícula con 11 elementos y 2 columnas tiene 6 filas.
El widget admite sugerencias, que ayudan a los usuarios a ingresar datos uniformes, y acciones de cambio, que son Actions
que se ejecutan cuando se produce un cambio en el campo de entrada de texto, como cuando un usuario agrega o borra texto.
El siguiente ejemplo es una cuadrícula de 2 columnas con un solo elemento:
Para definir dónde aparece el texto con una imagen en una cuadrícula, puedes especificar el campo gridItemLayout
.
Este campo te permite definir si el texto aparece sobre o debajo del elemento en la cuadrícula. Si gridItemLayout
no está definido, el texto aparecerá de forma predeterminada debajo del elemento en la cuadrícula.
El siguiente ejemplo es una cuadrícula de tres columnas con texto y una imagen en cada una. La primera cuadrícula define el texto que aparece sobre la imagen, la segunda cuadrícula define el texto que aparece debajo de la imagen y la tercera cuadrícula no define la posición del texto.
Cómo agregar un borde a una cuadrícula o columna
Para los elementos que aparecen en un widget column
o grid
, puedes agregar un borde a estos elementos de la IU si defines un campo borderType
y un campo borderStyle
.
Si no se define un campo borderStyle
, no se mostrará ningún borde de forma predeterminada. Puedes
definir un borderType
para aplicarlo a todos los elementos de un widget o aplicar el diseño
a cada elemento individual dentro de un widget.
En el siguiente ejemplo, se muestra una cuadrícula de 2 columnas con una imagen en cada una en la que se definieron el tipo de borde, el estilo y el color para que se apliquen a todos los elementos de la cuadrícula.
En el siguiente ejemplo, se muestra una cuadrícula de 3 columnas con una imagen en cada una y el estilo y el tipo de borde definidos de forma individual. La primera imagen tiene un borde definido como STROKE
. La segunda imagen tiene un borde definido como NO_BORDER
. La tercera imagen no tiene un borde definido.
Agrega un pie de página persistente
El widget CardFixedFooter
representa el pie de página de un mensaje de diálogo que envía una app de chat. Los pies de página pueden incluir un botón principal y uno secundario.
El widget CardFixedFooter
solo está disponible para diálogos.
El siguiente es un ejemplo de un widget CardFixedFooter
con dos botones:
Solucionar problemas
Cuando una app de Google Chat o una tarjeta muestran un error, la interfaz de Chat muestra un mensaje que dice "Se produjo un error". o "No se puede procesar tu solicitud". A veces, la IU de Chat no muestra ningún mensaje de error, pero la app o la tarjeta de Chat producen un resultado inesperado. Por ejemplo, es posible que no aparezca un mensaje de la tarjeta.
Aunque es posible que no se muestre un mensaje de error en la IU de Chat, los mensajes de error descriptivos y los datos de registro están disponibles para ayudarte a corregir errores cuando se activa el registro de errores de las apps de Chat. Si necesitas ayuda para ver, depurar y corregir errores, consulta Cómo solucionar problemas y corregir errores de Google Chat.