Table
Composable data table with paging support.
This overload wraps PagingData and delegates to the core Table composable.
Columns are described by columns (
ColumnSpec).Data is provided via items (
PagingData).Sorting, filters, ordering and selection are controlled by state.
Generic parameters:
T actual row item type.
C column key type.
E table data type - shared state accessible in headers, footers, and edit cells.
Parameters
paging data container with loaded items
mutable table state (sorting, filters, order, selection)
list of visible/available column specifications
current table data instance - accessible in headers, footers, and edit cells
layout modifier for the whole table
optional row content shown when an item is null
stable key for rows; defaults to index
row primary action handler
optional long-press handler
row blocks declared by identity (RowBlocks.blockOf); requires a stable rowKey. Bands derive over loaded adjacent runs, so a placeholder breaks a band and a partially loaded block extends as its pages arrive. Without RowBlocks.onCommit blocks are display-only; with it a drop commits only when its landing neighbours are loaded — against a placeholder the gesture snaps back and nothing is emitted. Apply commits in your data layer by RowBlockMove.blockId: a paged consumer holds no materialized list for applyRowBlockMove, and the data layer is what knows full block membership, including rows never loaded here.
optional context menu host, invoked with item and absolute position
styling hooks for rows and cells
container/content colors
string provider for UI text
list scroll state
horizontal scroll state of the whole table
header icons used for sort and filter affordances
surface shape of the table
outer border stroke; null uses theme default, TableDefaults.NoBorder disables border
Composable data table with paging support.
This overload wraps PagingData and delegates to the core Table composable.
Columns are described by columns (
ColumnSpec).Data is provided via items (
PagingData).Sorting, filters, ordering and selection are controlled by state.
Generic parameters:
Parameters
paging data container with loaded items
mutable table state (sorting, filters, order, selection)
list of visible/available column specifications
layout modifier for the whole table
optional row content shown when an item is null
stable key for rows; defaults to index
row primary action handler
optional long-press handler
row blocks declared by identity (RowBlocks.blockOf); requires a stable rowKey. Bands derive over loaded adjacent runs, so a placeholder breaks a band and a partially loaded block extends as its pages arrive. Without RowBlocks.onCommit blocks are display-only; with it a drop commits only when its landing neighbours are loaded — against a placeholder the gesture snaps back and nothing is emitted. Apply commits in your data layer by RowBlockMove.blockId: a paged consumer holds no materialized list for applyRowBlockMove, and the data layer is what knows full block membership, including rows never loaded here.
optional context menu host, invoked with item and absolute position
styling hooks for rows and cells
container/content colors
string provider for UI text
list scroll state
horizontal scroll state of the whole table
header icons used for sort and filter affordances
surface shape of the table
outer border stroke; null uses theme default, TableDefaults.NoBorder disables border