Jetpack Compose Modifier.fillMaxWidth.align编译失败 &g



像这样声明Box会导致编译错误

Box(modifier = Modifier
.fillMaxWidth()
.align(Alignment.Center)) {
Text(text = "Hello")
}

import foralign如下所示

import androidx.compose.foundation.layout.BoxScopeInstance.align

误差

Cannot access 'BoxScopeInstance': it is internal in 'androidx.compose.foundation.layout'

Compose Version =1.1.1

Kotlin Version =1.6.10

Android Studio Version =Android Studio Electric Eel | 2022.1.1 Canary 2

align应该从Box的内容中调用

Box(
modifier = Modifier.fillMaxWidth()
) {
Text(
modifier = Modifier.align(Alignment.Center),
text = "foobar"
)
}

或者使用contentAlignment

Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
Text(
text = "foobar"
)
}

modifier.align()方法只能在BoxColumnRow布局范围内使用。

例如:

Column(modifier = Modifier.fillMaxWidth()) {
Text("Hello")
Text("World", modifier = Modifier.align(Alignment.CenterHorizontally))
Row(Modifier.align(Alignment.End)) {
Icon(....)
}
}

Column中使用align只能设置属性为Alignment.Horizontal的align,如centerhorizontal, Start, End。

Row中使用align只能设置其属性为Alignment.Vertical的对齐方式,如centervertical Top, Bottom。

Box中使用align来设置对齐方式而不是对齐方式。垂直和对齐。水平,如TopStart, TopCenter, TopEnd, Center, BottomStart, BottomCenter, BottomEnd

相关内容

  • 没有找到相关文章

最新更新