UI — Construir a interface
Guia + Referência para montar telas no CrossFly: widgets, layouts, navegação, temas, animações, imagens/gráficos e formulários.
Arranjo de componentes na tela — grid, vertical, horizontal e responsividade, um layout por página com exemplo e diagrama.
Distribui os filhos com espaçamento igual num eixo, preservando o tamanho de cada um.
Grade de colunas por fração, uma altura de linha por conteúdo mais alto.
Dispõe os filhos lado a lado, cada um na altura do contêiner.
Sem arranjo automático — posicionamento manual (setBounds) ou relativo (setRelativeBounds).
Posiciona e dimensiona por âncoras — relativo ao contêiner ou a outro componente.
Como garantir que qualquer layout se adapte a tamanho de tela, densidade e fonte.
Empilha os filhos de cima para baixo, cada um na largura do contêiner.
Janelas, pilha de navegação e diálogos: como abrir e fechar telas e devolver valores de uma para a outra.
O modelo por trás da navegação — a pilha do EventsProcessor, popup vs fullscreen, botão Voltar e transições.
Alert, ActionSheet e Hint — como abrir, obter a resposta e configurar aparência.
Avançar e voltar entre telas (push/pop) e passar dados para a tela de destino.
Como receber um resultado de volta — o padrão de callback e o padrão Picker/onAnswer.
Campos de texto, máscaras, teclados, foco e a leitura e validação dos valores digitados no formulário.
TextArea — entrada de várias linhas, rolagem e ícones por linha.
TextField — legenda flutuante, ícones, senha com toggle e leitura do valor.
Controle de foco (focusOnTouch/focusOnKey), editável, limites e validação ao enviar.
EditMode (data/hora/moeda), máscara com '9', teclados nativos e o Keypad embutido.
Cores, temas claro e escuro e skins — as três camadas de aparência do CrossFly e quando usar cada uma delas.
ColorScheme — gere a paleta inteira do app a partir de uma cor-semente (Material 3).
ComponentStyle — API fluente para cor, borda, cantos, gaps, fonte e sombra de um componente.
Alternar tema em tempo real sem reconstruir a UI — setDarkMode + onRestyle/styled/restyle.
Trocar a identidade visual — estrutura, forma e espaçamento — global ou por componente.
Transições e feedback visual: os animadores de alpha, posição e loop, mais as transições entre telas.
AlphaAnimation, PositionAnimation e LoopAnimation — interpolar um número e aplicá-lo.
Animação de pressão automática via pressable() e controle manual de alpha do componente.
Animar a troca de janela (fade/slide/scale) declarando WindowStyle.transition.
Exibir imagens com ImageView, desenhar à mão livre no Whiteboard e fazer desenho customizado com Paint.
Sobrescrever onPaint(Paint) e usar as primitivas — rect (GRect), text, line, image.
Carregar e exibir imagens com ImageView, os modos de escala (ImageSize) e imagens de fundo.
Captura de desenho livre — assinatura, rabisco — com cor e espessura de caneta.
Catálogo de componentes visuais do CrossFly: botões, campos, seletores, alertas e pickers, cada um com exemplo pronto.
Folha de ações estilo iOS ancorada na base da tela.
Caixa de diálogo modal com título, mensagem e botões de ação.
Leitura de códigos de barras/QR pela câmera (classe abstrata).
Botão clicável que exibe texto e/ou ícone, com estado de pressionado e onAction.
Gráficos — linha, área, barra, barra/área empilhada, pizza, rosca e combo — com um núcleo de render compartilhado.
Escolha de cor por matriz matiz×saturação + slider de brilho.
Seleção de data num calendário mensal, com intervalo permitido opcional e retorno do dia escolhido.
ComboBox — botão com seta que abre uma lista para escolha única.
Como espaçar componentes sem Spacer — usando Gap, ingap/outgap e frações de layout.
Reservado — esqueleto vazio na API 2026 (não produz resultado).
Registro lógico que torna Options/Switches mutuamente exclusivos (radio).
Notificação efêmera não-modal (substitui Toast/ToolTip).
Exibe uma Image com modo de escala (ImageSize) e alinhamento configuráveis.
Janela de teclado numérico/calculadora que se ancora a um TextField em foco.
Componente não interativo para exibir texto (com word-wrap) e/ou ícones read-only.
Cards prontos de item de lista — só rótulo (SINGLE) ou checkbox + rótulo (MULTIPLE).
Lista rolável e embutível de itens de texto, com seleção única ou múltipla.
Popup modal que envolve um ListView numa Window para seleção em janela flutuante.
Escolha de coordenada geográfica num mapa com GPS, devolvendo latitude e longitude ao chamador.
Exibe as coordenadas de GPS (lat, lon, hora do fix, velocidade, direção) como texto, atualizadas periodicamente.
Checkbox/radio com crossfade animado — checkbox sozinho, radio em Group.
DataAdapter paginado para VirtualListView, com cache LRU de páginas e carregamento assíncrono.
Captura de foto ou vídeo pela câmera do dispositivo, devolvendo o caminho do arquivo gerado.
Base de todos os pickers — o padrão getAnswer() + show(onAnswer).
Indicador de progresso — barra determinada, animação infinita ou ícone girando.
Seleção de um valor float num intervalo, contínuo ou em passos.
Interruptor on/off com trilho deslizante animado e rótulo opcional.
Barra de abas com indicador animado e conteúdo rolável horizontalmente com snap por página.
Campo de texto multilinha com word-wrap, rolagem vertical, ícones por linha e modo read-only rolável.
Campo de texto de uma linha com máscara, EditMode, modo senha, ícones clicáveis e caption flutuante.
Base abstrata de entrada de texto — cursor, seleção, clipboard, foco e teclado, comuns a TextField e TextArea.
Seleção de hora e minuto por relógio analógico ou grade.
Lista virtualizada de alto desempenho que recicla componentes, à moda do RecyclerView.
Embute uma webview nativa (HTML/JS) dentro da UI — via a interface IWebView, dependente de plataforma.
Superfície de desenho livre à mão, com traço suavizado, cor e espessura configuráveis.