我想更改特定子节点的horizontalAlignment
,其余子节点将使用相同的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),
)
}
}
非常感谢
1条答案
按热度按时间drnojrws1#
你可以使用
Modifier.align(Alignment.Start)
来对齐一个特定的子元素。例如,要使你的ScanDeviceList()
位于列的开头,代码将如下所示:你也可以把修饰符作为一个参数传递给ScanDeviceList可组合函数以使它更通用,代码将是这样的:
当您呼叫它时,您可以指定您想要的对齐方式:
**注意:**将修饰符添加到可组合函数的参数中被认为是最佳做法,因为这样可以使函数像上面的示例一样可重用。您可以使用Alignment.Start或Alignment.End调用ScanDeviceList,而无需更改函数本身,只需将不同的修饰符作为参数传递即可。