github rive-app/rive-android 11.14.0

5 hours ago

Features

Keyboard focus in the Rive composable

Set the new focus parameter to RiveFocusMode.On to make the Rive surface part of Android focus navigation. Tab and Shift+Tab then move through the instance's focusable content and back out to the surrounding UI. RiveFocusMode.Automatic does this only in keyboard input mode. Requires opting into @ExperimentalRiveFocus. (Change)

The experimental StateMachine focus API also changed. focusNext() and focusPrevious() are replaced by the suspending moveFocus(RiveFocusDirection), and RiveFocusState is now Unfocused or Focused(expectsKeyboardInput).

System fallback fonts

Missing characters are now looked up across all system fallback fonts, not just the default sans-serif font. CJK text uses the face for the device locale and follows locale changes. In most cases, you no longer need your own FontFallbackStrategy. See System font fallback and locale changes. (Change, bundled in this commit)

Layout and drawing

Fixes

  • Triggers: A trigger fired by a nested state machine could be cleared before a sibling state machine saw it. Triggers are no longer reset every frame. (Fix, bundled in this commit)
  • Listener actions: A view model value written by a listener action was missed by the next transition check, so a button could need two taps. (Fix, bundled in this commit)
  • Color emoji: COLRv1 emoji gradients drew as solid black. (Fix, bundled in this commit)
  • Focus teardown: Destroying an artboard that shared its host's focus manager could call into deleted components. (Fix)
  • Stroke caps: The Rive renderer could leave a hairline seam beside a cap. (Fix, bundled in this commit)
  • Virtualized scrolls: A virtualized scroll now rebuilds when its lists swap or are replaced. (Fix, bundled in this commit)
  • Scripting: 2D script vectors always have z = 0. GPU Canvas bind errors now raise a script error. (Fix, Fix)

Performance

  • System fallback fonts are memory-mapped instead of copied and are decoded only when they contain a needed glyph. (Change, bundled in this commit)
  • The runtime no longer walks every view model value each frame, and large virtualized lists load and scroll faster. (Change, bundled in this commit, Change)
  • Luau MeshInstances writes are committed once per draw instead of on every set(). (Change)

Full comparison

Don't miss a new rive-android release

NewReleases is sending notifications on new releases.