gpt4 book ai didi

android - 在 Jetpack Compose 中更改列中子项的对齐方式

转载 作者:行者123 更新时间:2023-12-05 03:16:40 29 4
gpt4 key购买 nike

我想更改 horizontalAlignment特定 child 和其余 child 将使用相同的 horizontalAlignment .这可能在 Column 中吗? ?

例如,Column父修饰符使用 horizontalAlignment = Alignment.CenterHorizontally,我希望特定的子修饰符会有所不同 horizontalAlignment .

        Column(
modifier = Modifier
.padding(16.dp)
.fillMaxSize()
.verticalScroll(rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally,
) {
ScreenImage()
Description()
if (viewModel.isBluetoothEnabled) {
ScanDeviceList(scanDeviceList)
} else {
Warning()
Spacer(modifier = Modifier.weight(1f))
TryAgainButtonView { tryAgainAction() }
ButtonView { openSettingAction() }
}
}

我要改ScanDeviceList()与众不同horizontalAlignment

@Composable
fun ColumnScope.ScanDeviceList(scanDeviceList: List<ScanResult>) {
Spacer(modifier = Modifier.height(20.dp))
AnimatedVisibility(scanDeviceList.isNotEmpty()) {
Text(
text = stringResource(R.string.vailable_device),
)
}
}

非常感谢

最佳答案

您可以使用 Modifier.align(Alignment.Start) 来对齐特定的 child 。因此,例如,要在列的开头制作您的 ScanDeviceList(),代码将如下所示:

@Composable
fun ColumnScope.ScanDeviceList(scanDeviceList: List<ScanResult>) {
Spacer(modifier = Modifier.height(20.dp))
AnimatedVisibility(
scanDeviceList.isNotEmpty(),
modifier = Modifier.align(Alignment.Start)
) {
Text(
text = stringResource(R.string.vailable_device),
)
}
}

您还可以将修饰符作为参数传递给 ScanDeviceList 可组合函数,使其更通用,代码如下所示:

@Composable
fun ColumnScope.ScanDeviceList(
scanDeviceList: List<ScanResult>,
modifier: Modifier = Modifier
) {
Spacer(modifier = Modifier.height(20.dp))
AnimatedVisibility(
scanDeviceList.isNotEmpty(),
modifier = modifier
) {
Text(
text = stringResource(R.string.vailable_device),
)
}
}

当你调用它时,你可以指定你想要的对齐方式:

ScanDeviceList(scanDeviceList, modifier = Modifier.align(Alignment.Start))

注意:将修饰符添加到可组合函数的参数被认为是最佳实践,因为它会使函数像上面的示例一样可重用,您可以使用 Alignment.Start 或 Alignment.End 调用 ScanDeviceList无需更改函数本身,只需将不同的修饰符作为参数传递即可。

关于android - 在 Jetpack Compose 中更改列中子项的对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74556159/

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