Lazy Table
Compose UI的懒加载表格库。
懒加载表格允许在二维平面上显示数据的列和行。它基于MinaBox构建(后者基于LazyLayout
),提供了注册项目的方法,并处理平面上的滚动。
多平台
该库支持Android、iOS、桌面(Windows、MacOS、Linux)和Wasm目标平台。
使用方法
获取依赖
第1步: 在构建文件中添加MavenCentral仓库。
在根目录的build.gradle.kts
文件的repositories块末尾添加:
allprojects {
repositories {
...
mavenCentral()
}
}
或者在settings.gradle.kts
中:
dependencyResolutionManagement {
repositories {
...
mavenCentral()
}
}
第2步: 添加依赖。 在releases页面查看最新版本。
dependencies {
implementation("io.github.oleksandrbalan:lazytable:$version")
}
在Composable中使用
LazyTable
布局的核心元素是content
lambda,其中项目的注册方式类似于LazyColumn
或LazyRow
。主要区别在于每个项目必须在layoutInfo
lambda中提供其位置和大小。每个项目通过指定column
和row
来定义其位置,并通过指定占用多少列或行来定义大小(默认设置为1)。
单元格的大小通过dimensions
参数定义。有多个lazyTableDimensions
方法可以为所有或每个列/行创建尺寸。
懒加载表格还允许指定应固定多少列/行,以便在用户在表格中导航时保持可见。请查看pinConfiguration
参数。
还可以使用LazyTableState
的实例来观察滚动状态并以编程方式更改它。
val columns = 10
val rows = 10
LazyTable(
dimensions = lazyTableDimensions(48.dp, 32.dp)
) {
items(
count = columns * rows,
layoutInfo = {
LazyTableItem(
column = it % columns,
row = it / columns,
)
}
) { index ->
Text(text = "#$index")
}
}
查看演示应用和示例以获取更多使用示例。
示例
带有项目的简单表格。
https://github.com/oleksandrbalan/lazytable/assets/20944869/0277522f-b21a-4c93-b71f-9a1af2d079cc
带有固定列和行的高级示例。
https://github.com/oleksandrbalan/lazytable/assets/20944869/1a1c6bee-25cd-4cb5-b619-988fbe30554c
如果您需要更多自定义选项,请查看MinaBox库。