您可以在 LazyColumn 及其父 Composble 上使用
Modifier.onSizeChanged{intSize->}
并检查它们之间的距离。
这里需要注意的一件事是,在获取父级和列表的大小后,需要再次重新组合。因此,您可能需要检查或参考此答案才能获得尺寸而无需重新组合
@Composable
private fun LazyColumnParentSizeSample() {
var parentHeight by remember { mutableStateOf(0) }
var listHeight by remember { mutableStateOf(0) }
Column(modifier=Modifier.fillMaxSize()
.onSizeChanged {
parentHeight = it.height
}) {
LazyColumn(modifier=Modifier.onSizeChanged {
listHeight = it.height
}){
items(10) {
Text("Item: $it")
}
}
Text("listHeight: $listHeight, parent height: $parentHeight, difference: ${parentHeight-listHeight}")
}
}
要获取 dp 值,您可以使用
LocalDensity.current
val diffInDp = LocalDensity.current.run {(parentHeight-listHeight).toDp() }
使用
Modifier.onSizeChanged{}
获取 LazyColumn 的大小
LazyColumn(modifier = Modifier.onSizeChanged(size ->
int columnHeight = size.height
int screenHeight = //getyourscreenheighthere by using window class
int remainingSpacae = screenHeight - columnHeight
))
打开此链接获取屏幕高度 ->