TvGridCells.Adaptive


class TvGridCells.Adaptive : TvGridCells


Defines a grid with as many rows or columns as possible on the condition that every cell has at least minSize space and all extra space distributed evenly.

For example, for the vertical TvLazyVerticalGrid Adaptive(20.dp) would mean that there will be as many columns as possible and every column will be at least 20.dp and all the columns will have equal width. If the screen is 88.dp wide then there will be 4 columns 22.dp each.

Summary

Public constructors

Adaptive(minSize: Dp)

Public functions

open List<Int>
Density.calculateCrossAxisCellSizes(availableSize: Int, spacing: Int)

Calculates the number of cells and their cross axis size based on availableSize and spacing.

open operator Boolean
equals(other: Any?)
open Int

Public constructors

Adaptive

Adaptive(minSize: Dp)

Public functions

calculateCrossAxisCellSizes

open fun Density.calculateCrossAxisCellSizes(availableSize: Int, spacing: Int): List<Int>

Calculates the number of cells and their cross axis size based on availableSize and spacing.

For example, in vertical grids, spacing is passed from the grid's Arrangement.Horizontal. The Arrangement.Horizontal will also be used to arrange items in a row if the grid is wider than the calculated sum of columns.

Note that the calculated cross axis sizes will be considered in an RTL-aware manner -- if the grid is vertical and the layout direction is RTL, the first width in the returned list will correspond to the rightmost column.

Parameters
availableSize: Int

available size on cross axis, e.g. width of TvLazyVerticalGrid.

spacing: Int

cross axis spacing, e.g. horizontal spacing for TvLazyVerticalGrid. The spacing is passed from the corresponding Arrangement param of the lazy grid.

equals

open operator fun equals(other: Any?): Boolean

hashCode

open fun hashCode(): Int