GoSnackbar — el mensaje que se coloca solo
Se sitúa abajo (o arriba), por encima del área segura y del teclado, y se va por su cuenta. Sin él escribes la capa, la colocación, el temporizador y el desmontaje en cada pantalla que tenga que decir "guardado".
snack.show_text("Guardado", GoTheme.SUCCESS)
# Una oportunidad de deshacer — 0 es el primer botón, -1 significa que expiró
if await snack.post({"text": "Objeto soltado", "actions": ["Deshacer"]}) == 0:
restore_item()
Los mensajes se encolan en vez de pisarse unos a otros, y las repeticiones de la misma línea se fusionan — un servidor que falla cuatro veces por segundo ya no apila cuatro minutos de avisos. Un snackbar sin botón deja pasar la entrada, así que el juego que hay debajo sigue corriendo.
GoDialogs. Los botones de aquí tienen que ser opcionales — Deshacer,
Detalles, Reintentar.
GoNotice es la otra mitad de la pareja: nunca toma la entrada ni el foco, y la pantalla que
lo posee decide dónde va. Aquel no puede llevar un botón; este sí.
GoSpinner — una espera sin final a la vista
Los juegos que hablan con un servidor necesitan esto más que ninguna otra cosa de esta página: una pantalla que se queda quieta se lee como un cuelgue. Una sola llamada convierte el botón que has pulsado en un spinner en su sitio.
GoSpinner.busy(buy_button, true)
var ok := await server.purchase(item)
GoSpinner.busy(buy_button, false)
El botón mantiene su tamaño — la etiqueta se vuelve transparente en vez de desaparecer, así que la fila no da un salto — y
queda desactivado mientras gira. Esa segunda parte es lo importante: una compra no debe dispararse dos veces mientras haces
await. Con reduce_motion activado no gira; en su lugar laten tres puntos.
El progreso que se puede medir es un GoBar. Un spinner no promete nada sobre cuándo termina.
GoBadge — el punto de no leído, la etiqueta NUEVO, el 99+
GoBadge.attach(mail_button, unread_count) # se oculta al llegar a cero
GoBadge.attach(shop_button, 0, "NUEVO")
GoBadge.attach(friend_button, 3, "", true) # un punto — "hay algo ahí"
Se cuelga de la esquina superior derecha del anfitrión con anclajes, así que sigue a un anfitrión cuyo tamaño se decide más tarde, y adjuntarlo dos veces devuelve la misma insignia. Usa un número cuando la cuenta cambia lo que hace el jugador, y un punto cuando lo único que importa es "hay algo".
El color de su texto se elige por contraste con el color con el que el skin haya pintado la insignia — nunca se da por hecho que sea blanco — y lleva un nombre accesible, porque un punto de color no le dice nada a un lector de pantalla.