我将在每个列的顶部放置一个标签,并在底部放置一个LazyСolumn
。如下。
但是,当我填写它时,出现了我预期之外的屏幕:
还有什么需要我设置的吗?这是我的代码
@Composable
fun MenuDetailList(
loading: Boolean,
type: String,
items: List<Any>,
page: Int,
onChangeScrollPosition: (Int) -> Unit,
onTriggerNextPage: () -> Unit,
onCallCacheDialog: (Int) -> Unit
) {
val configuration = LocalConfiguration.current
val screenHeight = configuration.screenHeightDp.dp
Box(
modifier = Modifier
.background(color = MaterialTheme.colors.surface)
) {
if (loading && items.isEmpty()) {
LoadingShimmer(imageHeight = screenHeight)
}else if (items.isEmpty()) {
NothingHere()
}else {
ConstraintLayout(
modifier = Modifier
.fillMaxSize()
.background(color = Color.White)
) {
val (label, list) = createRefs()
TopAppBar(
modifier = Modifier
.constrainAs(label) {
top.linkTo(parent.top)
start.linkTo(parent.start)
end.linkTo(parent.end)
}
) {
MenuDetailLabel()
}
LazyColumn(
modifier = Modifier
.background(color = Color.Blue)
) {
itemsIndexed(
items = items
) { index, detail ->
onChangeScrollPosition(index)
if ((index + 1) >= (page * PAGE_SIZE) && !loading) {
onTriggerNextPage()
}
when(type) {
"purchase" -> {
PurchaseCard(
purchase = detail as Purchase,
onClick = onCallCacheDialog
)
}
}
}
}
}
}
}
}
2条答案
按热度按时间qnakjoqk1#
sauutmhj2#
您忘记了LazyColumn的
constrainAs
: