Compose Horizontal Pager 总是填充最大尺寸,verticalAligment 不工作
Compose Horizontal Pager always filling max size, verticalAligment not working
我正在使用 Google's Accompanist Horizontal Pager,我需要寻呼机来包装内容大小。由于某种原因,它填充了最大尺寸。目前它是约束布局的 child,但是我尝试将它放在列中,而另一个具有 Modifier.weight(1f)
- 结果相同。
verticalAlignment 也不起作用,child 居中。
Screenshot;绿色 - 传呼机,红色 - child.
编写版本:1.0.5;寻呼机版本:0.21.3-beta
HorizontalPager(
state = stickerBookState.pagerState,
modifier = Modifier
.constrainAs(pager) {
top.linkTo(pagerNavigator.bottom, 16.dp)
linkTo(parent.start, parent.end)
height = Dimension.wrapContent // for whatever reason it's actual size if fillConstraints / fillMaxSize
width = Dimension.fillToConstraints
}.background(PmColors.CompletedGreen),
verticalAlignment = Alignment.Top, // this one also doesn't seem to work
count = model.pages.size,
) { pageIndex ->
val pageData = model.pages[pageIndex]
@OptIn(ExperimentalFoundationApi::class)
LazyVerticalGrid(
modifier = Modifier
.wrapContentSize()
.background(PmColors.AlertRed),
cells = GridCells.Fixed(2)
) {
items(pageData) { holderData ->
Box(
modifier = Modifier
.padding(bottom = 24.dp)
.fillMaxWidth()
.wrapContentHeight(),
contentAlignment = Alignment.Center
) {
// some composable
}
}
}
}
此错误已在版本 0.21.4:
中修复
[Pager] Allow HorizontalPager to wrap content height and VerticalPager to wrap content width...
修改他们 sample 的代码可以达到预期的效果:
private fun Sample() {
Scaffold(
...
) {
Column(Modifier.fillMaxSize()) {
...
HorizontalPager(
...
verticalAlignment = Alignment.Top, //add this
modifier = Modifier
.wrapContentHeight() //and this
.fillMaxWidth()
) { page ->
...
}
...
}
}
}
我正在使用 Google's Accompanist Horizontal Pager,我需要寻呼机来包装内容大小。由于某种原因,它填充了最大尺寸。目前它是约束布局的 child,但是我尝试将它放在列中,而另一个具有 Modifier.weight(1f)
- 结果相同。
verticalAlignment 也不起作用,child 居中。
Screenshot;绿色 - 传呼机,红色 - child.
编写版本:1.0.5;寻呼机版本:0.21.3-beta
HorizontalPager(
state = stickerBookState.pagerState,
modifier = Modifier
.constrainAs(pager) {
top.linkTo(pagerNavigator.bottom, 16.dp)
linkTo(parent.start, parent.end)
height = Dimension.wrapContent // for whatever reason it's actual size if fillConstraints / fillMaxSize
width = Dimension.fillToConstraints
}.background(PmColors.CompletedGreen),
verticalAlignment = Alignment.Top, // this one also doesn't seem to work
count = model.pages.size,
) { pageIndex ->
val pageData = model.pages[pageIndex]
@OptIn(ExperimentalFoundationApi::class)
LazyVerticalGrid(
modifier = Modifier
.wrapContentSize()
.background(PmColors.AlertRed),
cells = GridCells.Fixed(2)
) {
items(pageData) { holderData ->
Box(
modifier = Modifier
.padding(bottom = 24.dp)
.fillMaxWidth()
.wrapContentHeight(),
contentAlignment = Alignment.Center
) {
// some composable
}
}
}
}
此错误已在版本 0.21.4:
中修复[Pager] Allow HorizontalPager to wrap content height and VerticalPager to wrap content width...
修改他们 sample 的代码可以达到预期的效果:
private fun Sample() {
Scaffold(
...
) {
Column(Modifier.fillMaxSize()) {
...
HorizontalPager(
...
verticalAlignment = Alignment.Top, //add this
modifier = Modifier
.wrapContentHeight() //and this
.fillMaxWidth()
) { page ->
...
}
...
}
}
}