This documentation is currently available in Portuguese. English and other languages are on the way.
UI — Building the interface
Guide + Reference for building screens in CrossFly: widgets, layouts, navigation, themes, animations, images/graphics and forms.
Arranging components on screen — grid, vertical, horizontal and responsiveness, one layout per page with example and diagram.
Distributes children with equal spacing along an axis, preserving each one's size.
Grid of columns by fraction, one row height per tallest content.
Lays out children side by side, each at the container's height.
No automatic arrangement — manual positioning (setBounds) or relative (setRelativeBounds).
Positions and sizes by anchors — relative to the container or to another component.
How to ensure any layout adapts to screen size, density and font.
Stacks children top to bottom, each at the container's width.
Windows, the navigation stack and dialogs: opening and closing screens and returning values from one to another.
The model behind navigation — the EventsProcessor stack, popup vs fullscreen, the Back button and transitions.
Alert, ActionSheet and Hint — how to open them, get the response and configure appearance.
Move forward and back between screens (push/pop) and pass data to the destination screen.
How to receive a result back — the callback pattern and the Picker/onAnswer pattern.
Text fields, masks, keyboards, focus, and reading and validating what the user typed into the form.
TextArea — multi-line input, scrolling and per-line icons.
TextField — floating caption, icons, password with toggle and reading the value.
Focus control (focusOnTouch/focusOnKey), editable, limits and validation on submit.
EditMode (date/time/currency), mask with '9', native keyboards and the built-in Keypad.
Colours, light and dark themes and skins — CrossFly's three layers of appearance and when to reach for each.
ColorScheme — generate the app's entire palette from a seed color (Material 3).
ComponentStyle — fluent API for a component's color, border, corners, gaps, font and shadow.
Switch theme in real time without rebuilding the UI — setDarkMode + onRestyle/styled/restyle.
Switch the visual identity — structure, shape and spacing — globally or per component.
Transitions and visual feedback: the alpha, position and loop animators, plus the screen transitions.
AlphaAnimation, PositionAnimation and LoopAnimation — interpolate a number and apply it.
Automatic press animation via pressable() and manual control of a component's alpha.
Animate the window switch (fade/slide/scale) by declaring WindowStyle.transition.
Showing images with ImageView, freehand drawing on the Whiteboard and custom drawing with Paint.
Catalogue of CrossFly's visual components: buttons, fields, pickers, alerts and selectors, each with a ready example.
iOS-style action sheet anchored to the bottom of the screen.
Modal dialog box with title, message and action buttons.
Reading barcodes/QR codes with the camera (abstract class).
Clickable button that displays text and/or icon, with a pressed state and onAction.
Charts — line, area, bar, stacked bar/area, pie, donut and combo — with a shared render core.
Color selection via a hue×saturation matrix + brightness slider.
Date selection in a monthly calendar, with an optional allowed range and the chosen day returned.
ComboBox — a button with an arrow that opens a list for single selection.
How to space components without Spacer — using Gap, ingap/outgap and layout fractions.
Reserved — empty skeleton in the 2026 API (produces no result).
Logical registry that makes Options/Switches mutually exclusive (radio).
Ephemeral non-modal notification (replaces Toast/ToolTip).
Displays an Image with configurable scale mode (ImageSize) and alignment.
Numeric keypad/calculator window that anchors to a focused TextField.
Non-interactive component for displaying text (with word-wrap) and/or read-only icons.
Ready-made list item cards — label only (SINGLE) or checkbox + label (MULTIPLE).
Scrollable, embeddable list of text items, with single or multiple selection.
Modal popup that wraps a ListView in a Window for selection in a floating window.
Pick a geographic coordinate on a map with GPS, returning latitude and longitude to the caller.
Displays GPS coordinates (lat, lon, fix time, speed, heading) as text, updated periodically.
Checkbox/radio with animated crossfade — checkbox on its own, radio in a Group.
Paged DataAdapter for VirtualListView, with an LRU page cache and asynchronous loading.
Capture a photo or video with the device camera, returning the path of the file it produced.
Base of all pickers — the getAnswer() + show(onAnswer) pattern.
Progress indicator — determinate bar, infinite animation or spinning icon.
Selection of a float value within a range, continuous or in steps.
On/off switch with an animated sliding track and an optional label.
Tab bar with an animated indicator and horizontally scrollable content with per-page snap.
Multiline text field with word-wrap, vertical scrolling, per-line icons and a scrollable read-only mode.
Single-line text field with mask, EditMode, password mode, clickable icons and a floating caption.
Abstract base for text input — cursor, selection, clipboard, focus and keyboard, common to TextField and TextArea.
Hour and minute selection via analog clock or grid.
High-performance virtualized list that recycles components, RecyclerView-style.
Embeds a native webview (HTML/JS) inside the UI — via the IWebView interface, platform-dependent.
Freehand drawing surface, with smoothed strokes and configurable color and thickness.