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
abstract fun present(    carousel: Carousel<T, *>,     position: CarouselBehavior.Presenter.Position,     progressToNext: Float,     supplementalViews: List<View>,     items: (at: CarouselBehavior.Presenter.Position) -> Carousel.PresentedItem?): CarouselBehavior.Presenter.Presentation

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.