首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jetpack Modifier.fillMaxWidth.align无法编译

Jetpack Modifier.fillMaxWidth.align无法编译
EN

Stack Overflow用户
提问于 2022-05-26 21:16:44
回答 2查看 677关注 0票数 0

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

代码语言:javascript
复制
           Box(modifier = Modifier
                             .fillMaxWidth()
                             .align(Alignment.Center)) {
                            Text(text = "Hello")
                          }

align的导入如下所示

代码语言:javascript
复制
import androidx.compose.foundation.layout.BoxScopeInstance.align

错误

代码语言:javascript
复制
Cannot access 'BoxScopeInstance': it is internal in 'androidx.compose.foundation.layout'

撰写版本= 1.1.1

Kotlin版本= 1.6.10

安卓演播室版本=安卓工作室电动鳗鱼2022.1.1金丝雀2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-26 21:38:00

align应该从Box的内容中调用。

代码语言:javascript
复制
Box(
    modifier = Modifier.fillMaxWidth()
) {
    Text(
        modifier = Modifier.align(Alignment.Center),
        text = "foobar"
    )
}

交替使用contentAlignment

代码语言:javascript
复制
Box(
    modifier = Modifier.fillMaxWidth(),
    contentAlignment = Alignment.Center
) {
    Text(
        text = "foobar"
    )
}
票数 3
EN

Stack Overflow用户

发布于 2022-05-27 14:02:29

modifier.align()方法只能在BoxColumnRow布局作用域中使用。

例如,类似这样的东西。

代码语言:javascript
复制
Column(modifier = Modifier.fillMaxWidth()) {
  Text("Hello")
  Text("World", modifier = Modifier.align(Alignment.CenterHorizontally))
  Row(Modifier.align(Alignment.End)) {
     Icon(....)
  }
}

Column中使用对齐只能设置其属性为Alignment.Horizontal的对齐,例如CenterHorizontally、Start、End。

Row中使用对齐只能设置其属性为Alignment.Vertical的对齐,例如CenterVertically顶部、底部。

Box中使用对齐设置Alignment.Vertical和Alignment.Horizontal以外的对齐方式,例如TopStart、TopCenter、TopEnd、Center、BottomStart、BottomCenter、BottomEnd。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72398096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档