更改可组合项的布局方向
Change layout direction of a Composable
我想将特定可组合项的方向设置为 RTL
@Composable
fun ViewToBeChanged() {
Row {
Image()
Column {
Text("Title")
Text("Subtitle")
}
}
}
可能吗?
Jetpack compose Layout documentation 提及 LocalLayoutDirection
Change the layout direction of a composable by changing the LocalLayoutDirection
compositionLocal.
但我不知道如何在可组合项中使用它才能生效。
由于我没有你的图片,我将你的可组合项调整为:
@Composable
fun ViewToBeChanged() {
Row {
Text("Foo", modifier = Modifier.padding(end = 8.dp))
Column {
Text("Title")
Text("Subtitle")
}
}
}
这给了我们:
切换到 RTL 的一种方法是使用 CompositionLocalProvider
和 LocalLayoutDirection
:
@Composable
fun RtlView() {
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
Row {
Text("Foo", modifier = Modifier.padding(end = 8.dp))
Column {
Text("Title")
Text("Subtitle")
}
}
}
}
在这里,我们说我们正在为提供给 CompositionLocalProvider()
的尾随 lambda 的内容覆盖 CompositionLocal
的布局方向。这给了我们:
这会更改可组合树的此分支使用的布局方向,用于可组合项本身。英语仍然是 LTR 语言,因此文本不受影响。
您可以使用 CompositionLocalProvider
to provide a custom LocalLayoutDirection
.
类似于:
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl ) {
Column(Modifier.fillMaxWidth()) {
Text("Title")
Text("Subtitle")
}
}
我想将特定可组合项的方向设置为 RTL
@Composable
fun ViewToBeChanged() {
Row {
Image()
Column {
Text("Title")
Text("Subtitle")
}
}
}
可能吗?
Jetpack compose Layout documentation 提及 LocalLayoutDirection
Change the layout direction of a composable by changing the
LocalLayoutDirection
compositionLocal.
但我不知道如何在可组合项中使用它才能生效。
由于我没有你的图片,我将你的可组合项调整为:
@Composable
fun ViewToBeChanged() {
Row {
Text("Foo", modifier = Modifier.padding(end = 8.dp))
Column {
Text("Title")
Text("Subtitle")
}
}
}
这给了我们:
切换到 RTL 的一种方法是使用 CompositionLocalProvider
和 LocalLayoutDirection
:
@Composable
fun RtlView() {
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl) {
Row {
Text("Foo", modifier = Modifier.padding(end = 8.dp))
Column {
Text("Title")
Text("Subtitle")
}
}
}
}
在这里,我们说我们正在为提供给 CompositionLocalProvider()
的尾随 lambda 的内容覆盖 CompositionLocal
的布局方向。这给了我们:
这会更改可组合树的此分支使用的布局方向,用于可组合项本身。英语仍然是 LTR 语言,因此文本不受影响。
您可以使用 CompositionLocalProvider
to provide a custom LocalLayoutDirection
.
类似于:
CompositionLocalProvider(LocalLayoutDirection provides LayoutDirection.Rtl ) {
Column(Modifier.fillMaxWidth()) {
Text("Title")
Text("Subtitle")
}
}