【发布时间】:2021-12-23 23:26:32
【问题描述】:
我正在尝试处理水平寻呼机,但我遇到了从顶部添加额外填充的问题。只有当我将HorizontalPager() 添加到我的布局时才会发生这种情况。
正如您在附件中看到的那样,我想将灰色指示器放在寻呼机下方,但是当我这样做时,寻呼机变低并且指示器变得不可见。看起来HorizontalPager() 有一些顶部填充 (?)
Box(
modifier = Modifier
.fillMaxWidth()
.height(350.dp)
.clip(RoundedCornerShape(0.dp, 0.dp, 12.dp, 12.dp))
.background(MaterialTheme.colors.onBackground)
) {
ConstraintLayout(
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.padding(10.dp)
) {
val (backButton, favouriteButton, photosPager) = createRefs()
BackNavigationSingleButton(
backButtonSelected = { }, modifier = Modifier
.height(42.dp)
.width(60.dp)
.clip(RoundedCornerShape(10.dp))
.background(Color.Red)
.constrainAs(backButton) {
top.linkTo(parent.top)
start.linkTo(parent.start)
}
)
IconButton(onClick = {}, modifier = Modifier
.size(42.dp)
.constrainAs(favouriteButton) {
top.linkTo(parent.top)
end.linkTo(parent.end)
}) {
Icon(
imageVector = Icons.Outlined.Favorite
)
}
Column(
modifier = Modifier
.constrainAs(photosPager) {
top.linkTo(parent.top)
start.linkTo(parent.start)
end.linkTo(parent.end)
}) {
val pagerState = rememberPagerState()
val items = 3
HorizontalPager(
count = items,
state = pagerState,
contentPadding = PaddingValues(0.dp)
) { page ->
Box(
modifier = Modifier
.size(100.dp)
.background(Color.Green)
)
}
Row(modifier = Modifier.align(Alignment.CenterHorizontally)) {
for (i in 1..items) {
Canvas(modifier = Modifier.size(20.dp)) {
drawCircle(
color = Color.Gray,
center = Offset(x = 10f, y = 10f),
radius = size.minDimension / 4,
)
}
}
}
}
}
}
【问题讨论】:
-
您说您希望您的指标“放在我的寻呼机下方” - 但它们显示在寻呼机的顶部。那么它是哪一个?您希望指示器位于寻呼机“上方”的顶部,还是位于寻呼机“下方”的底部?
标签: android kotlin android-layout android-jetpack-compose android-jetpack