Esta documentación está disponible en portugués. Las traducciones a otros idiomas están en camino.
UI — Construir la interfaz
Guía + Referencia para armar pantallas en CrossFly: widgets, layouts, navegación, temas, animaciones, imágenes/gráficos y formularios.
Disposición de componentes en pantalla — grid, vertical, horizontal y responsividad, un layout por página con diagrama.
Distribuye los hijos con espaciado igual en un eje, preservando el tamaño de cada uno.
Cuadrícula de columnas por fracción, una altura de fila según el contenido más alto.
Coloca los hijos lado a lado, cada uno a la altura del contenedor.
Sin distribución automática — posicionamiento manual (setBounds) o relativo (setRelativeBounds).
Posiciona y dimensiona por anclas — relativo al contenedor o a otro componente.
Cómo garantizar que cualquier layout se adapte al tamaño de pantalla, densidad y fuente.
Apila los hijos de arriba hacia abajo, cada uno al ancho del contenedor.
Ventanas, pila de navegación y diálogos: abrir y cerrar pantallas y devolver valores de una a otra.
El modelo detrás de la navegación — la pila del EventsProcessor, popup vs fullscreen, botón Atrás y transiciones.
Alert, ActionSheet y Hint — cómo abrir, obtener la respuesta y configurar la apariencia.
Avanzar y volver entre pantallas (push/pop) y pasar datos a la pantalla de destino.
Cómo recibir un resultado de vuelta — el patrón de callback y el patrón Picker/onAnswer.
Campos de texto, máscaras, teclados, foco y la lectura y validación de los valores escritos en el formulario.
TextArea — entrada de varias líneas, desplazamiento e iconos por línea.
TextField — leyenda flotante, iconos, contraseña con toggle y lectura del valor.
Control de foco (focusOnTouch/focusOnKey), editable, límites y validación al enviar.
EditMode (fecha/hora/moneda), máscara con '9', teclados nativos y el Keypad integrado.
Colores, temas claro y oscuro y skins — las tres capas de apariencia de CrossFly y cuándo usar cada una.
ColorScheme — genera la paleta entera de la app a partir de un color semilla (Material 3).
ComponentStyle — API fluida para color, borde, esquinas, gaps, fuente y sombra de un componente.
Alternar el tema en tiempo real sin reconstruir la UI — setDarkMode + onRestyle/styled/restyle.
Cambiar la identidad visual — estructura, forma y espaciado — global o por componente.
Transiciones y feedback visual: los animadores de alpha, posición y bucle, más las transiciones de pantalla.
AlphaAnimation, PositionAnimation y LoopAnimation — interpolar un número y aplicarlo.
Animación de presión automática vía pressable() y control manual de alpha del componente.
Animar el cambio de ventana (fade/slide/scale) declarando WindowStyle.transition.
Mostrar imágenes con ImageView, dibujar a mano alzada en el Whiteboard y dibujo personalizado con Paint.
Sobrescribir onPaint(Paint) y usar las primitivas — rect (GRect), text, line, image.
Cargar y mostrar imágenes con ImageView, los modos de escala (ImageSize) e imágenes de fondo.
Captura de dibujo libre — firma, garabato — con color y grosor de lápiz.
Catálogo de los componentes visuales de CrossFly: botones, campos, selectores, alertas y pickers, cada uno con ejemplo.
Hoja de acciones estilo iOS anclada en la base de la pantalla.
Cuadro de diálogo modal con título, mensaje y botones de acción.
Lectura de códigos de barras/QR mediante la cámara (clase abstracta).
Botón clicable que muestra texto y/o icono, con estado de presionado y onAction.
Gráficos — línea, área, barra, barra/área apilada, tarta, rosca y combo — con un núcleo de renderizado compartido.
Elección de color mediante matriz matiz×saturación + slider de brillo.
Selección de fecha en un calendario mensual, con rango permitido opcional y devolución del día elegido.
ComboBox — botón con flecha que abre una lista para elección única.
Cómo espaciar componentes sin Spacer — usando Gap, ingap/outgap y fracciones de layout.
Reservado — esqueleto vacío en la API 2026 (no produce resultado).
Registro lógico que hace que Options/Switches sean mutuamente exclusivos (radio).
Notificación efímera no modal (sustituye a Toast/ToolTip).
Muestra una Image con modo de escala (ImageSize) y alineación configurables.
Ventana de teclado numérico/calculadora que se ancla a un TextField enfocado.
Componente no interactivo para mostrar texto (con word-wrap) y/o iconos de solo lectura.
Cards listos de ítem de lista — solo rótulo (SINGLE) o checkbox + rótulo (MULTIPLE).
Lista desplazable y embebible de ítems de texto, con selección única o múltiple.
Popup modal que envuelve un ListView en una Window para selección en ventana flotante.
Elección de coordenada geográfica en un mapa con GPS, devolviendo latitud y longitud a quien la invoca.
Muestra las coordenadas de GPS (lat, lon, hora del fix, velocidad, dirección) como texto, actualizadas periódicamente.
Checkbox/radio con crossfade animado — checkbox solo, radio en Group.
DataAdapter paginado para VirtualListView, con caché LRU de páginas y carga asíncrona.
Captura de foto o video con la cámara del dispositivo, devolviendo la ruta del archivo generado.
Base de todos los pickers — el patrón getAnswer() + show(onAnswer).
Indicador de progreso — barra determinada, animación infinita o ícono girando.
Selección de un valor float en un intervalo, continuo o en pasos.
Interruptor on/off con riel deslizante animado y rótulo opcional.
Barra de pestañas con indicador animado y contenido desplazable horizontalmente con snap por página.
Campo de texto multilínea con word-wrap, desplazamiento vertical, íconos por línea y modo read-only desplazable.
Campo de texto de una línea con máscara, EditMode, modo contraseña, íconos clicables y caption flotante.
Base abstracta de entrada de texto — cursor, selección, clipboard, foco y teclado, comunes a TextField y TextArea.
Selección de hora y minuto mediante reloj analógico o cuadrícula.
Lista virtualizada de alto rendimiento que recicla componentes, al estilo de RecyclerView.
Embebe una webview nativa (HTML/JS) dentro de la UI — vía la interfaz IWebView, dependiente de plataforma.
Superficie de dibujo libre a mano, con trazo suavizado, color y grosor configurables.