Nicolai
10/01/2023, 7:38 PM@OptIn(ExperimentalFoundationApi::class)
@Composable
private fun PwHorizontalPager(
content: List<@Composable () -> Unit>
) {
Box(
modifier = Modifier
.fillMaxWidth()
)
{
val pagerState = rememberPagerState(
pageCount = { content.size }
)
val placeables: ArrayList<Placeable> = arrayListOf()
var maximumHeight by remember {
mutableStateOf(300.dp)
}
SubcomposeLayout(modifier = Modifier.fillMaxSize()) { constraints ->
content.forEachIndexed { index, composable ->
placeables.addAll(subcompose(index, composable).map { it.measure(constraints) })
}
placeables.forEach { Timber.v("height: " + it.height) }
maximumHeight = maxOf(0.dp, placeables.maxByOrNull { it.height }?.height?.toFloat()?.toDp() ?: 0.dp)
layout(constraints.maxWidth, constraints.maxHeight) {
}
}
HorizontalPager(
modifier = Modifier
.fillMaxWidth(),
state = pagerState,
userScrollEnabled = true,
verticalAlignment = Alignment.Top,
contentPadding = PaddingValues(16.dp),
beyondBoundsPageCount = content.size,
pageSpacing = 32.dp
) {
content[it]()
}
}
}
Colton Idle
10/03/2023, 6:20 AMNicolai
10/03/2023, 6:44 AMColton Idle
10/03/2023, 6:25 PMNicolai
10/04/2023, 7:39 AMColton Idle
10/13/2023, 6:07 AMNicolai
10/13/2023, 6:18 AMColton Idle
10/18/2023, 4:18 PM