如何在 Jetpack Compose 中将行的宽度设置为等于 TextField 的宽度?

Ioa*_* P. 5 android kotlin android-jetpack-compose android-compose-textfield

我希望包含按钮和文本的行的宽度与文本字段的宽度相同。这是我尝试过的:

Column(
    modifier = Modifier.fillMaxSize().padding(padding),
    verticalArrangement = Arrangement.Center,
    horizontalAlignment = Alignment.CenterHorizontally
) {
    TextField(
        value = email,
        onValueChange = { email = it },
        placeholder = {Text(text = "Email")}
    )
    TextField(
        value = password,
        onValueChange = { password = it },
        placeholder = {Text(text = "Pass")}
    )
    Row {
        Button(
            onClick = {
                start(email, password)
            }
        ) {
            Text(
                text = "Start",
                fontSize = 18.sp
            )
        }
        Spacer(
            modifier = Modifier.weight(1f)
        )
        Text(
            text = "Skip"
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

在此输入图像描述

这就是我所期望的:

在此输入图像描述

我可以在不设置固定尺寸的情况下实现这一目标吗?

Gab*_*tti 5

您可以使用 a 包装 3 个可组合项Column,并使用对其应用内部测量Modifier.width(IntrinsicSize.Min),然后使用fillMaxWidth()应用于:RowButton

Column(
    modifier = Modifier.fillMaxSize(),
    verticalArrangement = Arrangement.Center,
    horizontalAlignment = Alignment.CenterHorizontally
) {
    Column(Modifier.width(IntrinsicSize.Min)){

        TextField()
        TextField()
        Row(
            horizontalArrangement = Arrangement.Center,
            modifier = Modifier.fillMaxWidth()
        ) {
            //Button + Skip Text
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述