我正在创建一个 Jetpack Compose 对话框,其中包含一个列,其中所有元素都应始终可见,但第三个元素除外,第三个元素是一个文本,如果文本不适合屏幕空间,则该文本应该是可滚动的。我几乎通过仅用于该文本元素的辅助可滚动列实现了这一点。但是,如果有大量文本,此实现会将底部子项(按钮)推到视图之外。这是我的代码:
@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 …Run Code Online (Sandbox Code Playgroud) 我在我的 jetpack compose 中使用 compose 1.1.1。我无法更新到最新版本。我想要这样的解决方案。我的修改器出现错误weight。有人可以指导我如何获得weight修改器Row吗?
implementation "androidx.compose.runtime:runtime:$compose_version"
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.foundation:foundation:$compose_version"
implementation "androidx.compose.foundation:foundation-layout:$compose_version"
implementation "androidx.compose.material:material:$compose_version"
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
implementation "androidx.compose.ui:ui-tooling:$compose_version"
implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
androidTestImplementation "androidx.compose.ui:ui-test:$compose_version"
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version"
implementation "androidx.activity:activity-compose:$compose_version"
Run Code Online (Sandbox Code Playgroud)
行.kt
Column {
Row(
modifier = Modifier.weight(1f, false)
) {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
错误
Expression 'weight' cannot be invoked as a function. The function 'invoke()' is not found
Run Code Online (Sandbox Code Playgroud)
非常感谢
更新
我在这里添加我的整个代码,请看一下......
@Composable
fun Input(optionData: OptionData) {
Column(
modifier = Modifier
.fillMaxSize()
) …Run Code Online (Sandbox Code Playgroud)