Android Jetpack编写尝试对齐框内的文本

nuypyhwy  于 2022-12-02  发布在  Android
关注(0)|答案(3)|浏览(134)

我创建了一个框,并在其中创建了一个图像和文本。我将框的内容对齐方式设置为TopStart,但问题是文本相对于图像没有正确对齐。水平方向是可以的,但垂直方向看起来像是有某种填充,但我尝试将填充设置为0,但结果还是一样。
即使在底部对齐它开始它设置比图像更高的像素对

Box(contentAlignment = Alignment.TopStart,) {
    Image(painter = painterResource(id = R.drawable.ic_launcher_background), contentDescription = "",
        modifier = Modifier.size(125.dp),
        colorFilter = ColorFilter.tint(MaterialTheme.colors.onBackground)
    )

    Text(text = "4",
        color = MaterialTheme.colors.primary,
        fontSize = 44.sp,
        textAlign = TextAlign.Center
    )
}

fcy6dtqo

fcy6dtqo1#

似乎我需要使用BasicTextField来删除上下多余的填充,这是一些与材料设计布局装饰有关的东西。
我只是使用修改器偏移量来修复我的问题,通过正确地对齐它

q8l4jmvw

q8l4jmvw2#

你可以在这里根据检查:

@Composable
fun MainScreen() {
.
.
   Box(modifier = Modifier.size(height = 90.dp, width = 290.dp)) {
    Text("TopStart", Modifier.align(Alignment.TopStart))
    Text("TopCenter", Modifier.align(Alignment.TopCenter))
    Text("TopEnd", Modifier.align(Alignment.TopEnd))

    Text("CenterStart", Modifier.align(Alignment.CenterStart))
    Text("Center", Modifier.align(Alignment.Center))
    Text(text = "CenterEnd", Modifier.align(Alignment.CenterEnd))

    Text("BottomStart", Modifier.align(Alignment.BottomStart))
    Text("BottomCenter", Modifier.align(Alignment.BottomCenter))
    Text("BottomEnd", Modifier.align(Alignment.BottomEnd))
   }
}

0s7z1bwu

0s7z1bwu3#

您需要在Box内的Text上使用.align()修饰符来居中/定位它。例如Text(..., modifier = Modifier.align(Center), ..)
或者,您可以让文字填满整个Box(将.fillMaxSize()加入其中),然后使用textAlign属性。

相关问题