LinearPresenter

class LinearPresenter<T>(orientation: Orientation = Horizontal, spacing: (Size) -> Double = { 0.0 }, itemConstraints: ConstraintDslContext.(Bounds) -> Unit = fill) : ConstraintBasedPresenter<T> (source)

Presenter that shows items in a continuous stream with optional spacing between them. Items are positioned in the Carousel using itemConstraints.

Parameters

orientation

that determines direction items will lay out

spacing

between items

itemConstraints

used to determine item bounds within the Carousel

Constructors

Link copied to clipboard
constructor(orientation: Orientation = Horizontal, spacing: (Size) -> Double = { 0.0 }, itemConstraints: ConstraintDslContext.(Bounds) -> Unit = fill)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard

A Carousel will call this method when trying to do manual movement. This is a fundamentally different problem than it needs to solve when skipping through items (interpolate between indexes). This requires mapping pixel offsets to indexes. Only a Carousel's Presenter knows how items are laid out and can provide any information about "distance" between them. Hence, this API.

Link copied to clipboard

Called by Carousel to update the Presentation it should display.

Inherited functions

Link copied to clipboard
protected fun boundsFromConstraint(item: Carousel.PresentedItem, viewPort: Size, forceSetup: Boolean = false): Rectangle
Link copied to clipboard
protected fun setBounds(item: Carousel.PresentedItem, viewPort: Size, adjust: (Rectangle) -> Rectangle = { it })

Sets the bounds of item based on the result of using. This method tries to handle cases where the item being constrained adjusts its size after a bounds change. This would be the case for an item that maintains an aspect ratio for example. The calculation is run a second time in these cases to allow any constraint to adjust as needed.

Link copied to clipboard
fun Carousel<T, *>.update()

Indicate that the stage is outdated and suggest the Carousel invoke present.