我正在 Compose 中創建一個具有以下布局的簡單應用程式:
val viewModel: HomeScreenViewModel = viewModel()
val scrollState = rememberScrollState()
Column(
modifier = Modifier.verticalScroll(scrollState).fillMaxSize()
) {
Text(
"Editor picks".uppercase(),
style = MaterialTheme.typography.labelMedium,
modifier = Modifier.padding(8.dp),
)
ElevatedCard(
modifier = Modifier.clickable {
}.fillMaxSize()
) {
Column {
AsyncImage(
viewModel.topVideo?.thumbnailSrc,
contentDescription = null,
modifier = Modifier.fillMaxWidth()
)
}
}
}
輸出如下所示:

影像沒有占用我需要的所有空間,它只有在我洗掉 時才有效Modifier.verticalScroll,因此最上面的元素只是一個簡單的列。當我這樣做時,輸出是我所期望的:

我對為什么會發生這種情況感到非常困惑,因為我不相信使根元素可滾動會對輸出產生任何影響。
我試圖在網上尋找幾個小時的解決方案,但我沒有找到任何關于為什么應用此修飾符會破壞布局的任何資訊。
另一個人問了一個類似的問題,但答案沒有用。
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
如果您希望影像填充整個螢屏寬度并保持正確的縱橫比,您可以將影像可組合設定contentScale為ContentScale.FillWidth。
Column(
modifier = Modifier.verticalScroll(scrollState)
) {
Text(
"Editor picks".uppercase(),
modifier = Modifier.padding(8.dp),
)
Card(
modifier = Modifier.clickable {}
) {
Column {
AsyncImage(
model = viewModel.topVideo?.thumbnailSrc,
contentDescription = null,
contentScale = ContentScale.FillWidth,
modifier = Modifier.fillMaxWidth()
)
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/511615.html
標籤:安卓科特林android-jetpack-compose
