ConstraintBasedPresenter

Presenter that uses a constraint to determine the selected item's bounds within the Carousel.

Parameters

itemConstraints

used to determine the selected item's bounds

Inheritors

Constructors

Link copied to clipboard
constructor(itemConstraints: ConstraintDslContext.(Bounds) -> Unit)

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.

Inherited 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.

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

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