Cljfx-flowless is an idiomatic wrapper of Flowless library — an efficient virtual flow implementation similar to list view.
See latest version of io.github.vlaaad/cljfx-flowless on Clojars.
cljfx/flowless requires Java 11.
A minimal code to try it out:
(require '[cljfx.api :as fx]
'[cljfx.flowless :as fx.flowless])
(fx/on-fx-thread
(fx/create-component
{:fx/type:stage:showingtrue:scene {:fx/type:scene:root {:fx/type fx.flowless/virtualized-scroll-pane ;; add scroll bars:content {:fx/type fx.flowless/virtual-flow
:cell-factory identity
:items (for [i (range1000)]
{:fx/type:label:text (str i)})}}}}))This lifecycle defines a VirtualFlow.
Supported props:
:items- list of any objects.:cell-factory- a function that converts item to cljfx description of any node that will display the item. Required, can't be changed.:orientation- either:vertical(default) or:horizontal.:gravity- either:front(default) or:rear, defines alignment of cell when they don't fill the whole view.- other region props
This lifecycle defines a node that wraps VirtualFlow pane and shows it with scroll bars. Supported props:
:content(required) - component description that defines a VirtualFlow instance. Can't be changed.:hbar-policyand:vbar-policy- scroll bar policies, either:never,:alwaysor:as-needed(default).- other region props.