gpt4 book ai didi

android - 如何创建一个 Jetpack Compose Column,其中中间的 child 是可滚动的,但所有其他 child 总是可见的?

转载 作者:行者123 更新时间:2023-12-04 23:36:53 30 4
gpt4 key购买 nike

我正在创建一个 Jetpack Compose 对话框,其中包含一个所有元素都应该始终可见的 Column,除了第三个元素,它是一个 Text,如果文本不适合屏幕空间,则应该可以滚动。我几乎通过仅针对该 Text 元素的辅助可滚动列实现了这一点。但是,如果有大量文本,此实现会将底部子项(按钮)推到视野之外。这是我的代码:

@Composable
fun WelcomeView(
viewModel: WelcomeViewModel,
onDismiss: () -> Unit
) {
Dialog(onDismissRequest = onDismiss) {
Box(
modifier = Modifier
.clip(RoundedCornerShape(Spacing.extraLarge))
.background(Colors.backgroundBase)
.padding(all = Spacing.medium)
) {
Column {
IconView(
name = IconViewNames.RUNNING_SHOE,
size = IconViewSizes.LARGE,
color = Colors.primaryBase
)

Text(
viewModel.title,
style = Text.themeBillboard,
modifier = Modifier.padding(bottom = Spacing.medium)
)

Column(
modifier = Modifier
.verticalScroll(rememberScrollState())
) {
Text(
viewModel.message,
style = Text.themeHeadline,
modifier = Modifier.padding(bottom = Spacing.medium)
)
}

Button(
onClick = onDismiss,
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(Spacing.medium))
.background(Colors.primaryBase)
) {
Text(
"Continue",
style = Text.themeHeadline.copy(color = textExtraLight),
modifier = Modifier.padding(all = Spacing.extraSmall)
)
}
}
}
}
}

@Preview
@Composable
fun PreviewWelcomeView() {
WelcomeView(
viewModel = WelcomeViewModel(
firstName = "Wendy",
htmlWelcomeMessage = PreviewTextFixtures.threeParagraphs
),
onDismiss = {}
)
}
当只有一段文本时,它(正确地)看起来是这样的:
enter image description here
但这就是当有三个段落时的样子。文本可以正确滚动,但请注意缺少“继续”按钮:
enter image description here

最佳答案

将此用于您的中间(可滚动)可组合

    Column(
modifier = Modifier
.verticalScroll(rememberScrollState())
.weight(weight =1f, fill = false)

) {
Text("Your text here")
}
关键是使用 fill = false .

关于android - 如何创建一个 Jetpack Compose Column,其中中间的 child 是可滚动的,但所有其他 child 总是可见的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68164883/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com