我想将我的图标置于收件箱的中心.我已经try 过Row的verticalAlignment参数,但它似乎只适用于文本:

Row(
    horizontalArrangement = Arrangement.Center,
    verticalAlignment = Alignment.CenterVertically,
    modifier = Modifier.fillMaxWidth(),
) {
    Icon(
        imageVector = Icons.Default.Email,
        tint = TextColor1,
        contentDescription = "email icon",
    )
    Text(
        text = stringResource(R.string.mail_adress),
        color = TextColor1,
        fontSize = 20.sp,
    )
}

code image + what it's doing:

我知道它接近中心,但它并不是完全中心.


Edit: 如果需要,这里是完整的代码(我只保留了有问题的部分):

package com.example.cartedevisite2

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Email
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.cartedevisite2.ui.theme.BackgroundColor
import com.example.cartedevisite2.ui.theme.CarteDeVisite2Theme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            CarteDeVisite2Theme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    VisitCard()
                }
            }
        }
    }
}

@Composable
fun VisitCard(modifier: Modifier = Modifier) {
    Column(
        modifier = modifier
            .background(BackgroundColor)
            .padding(12.dp)
    ) {
        Coordinates(modifier)
    }
}

@Composable
fun Coordinates(modifier: Modifier = Modifier) {
    Row(
        horizontalArrangement = Arrangement.Center,
        verticalAlignment = Alignment.CenterVertically,
        modifier = Modifier
    ) {
        Icon(
            imageVector = Icons.Default.Email,
            contentDescription = "email icon"
        )
        Text(
            text = stringResource(R.string.mail_adress),
            fontSize = 20.sp
        )
    }
}

@Preview(showBackground = true)
@Composable
fun VisitCardPreview() {
    CarteDeVisite2Theme {
        VisitCard()
    }
}

And the result not cropped:

推荐答案

@dev.tejasb是对的,这是预览的一个问题.谢谢!

Android相关问答推荐

如何在点击按钮时将字符串插入到文本字段中的光标位置?

如何将子零部件的大小调整为可以调整大小的父组件大小?

懒惰的垂直网格中盒子的重量-Jetpack组合

无法将非静态方法与Frida挂钩

LaunchedEffect没有延迟时应用程序崩溃

如何在 Jetpack Compose LazyColumn 中将项目分组在一起,例如卡片

需要 java 17 而不是 java 11:Android CI-CD GitHub Actions

expo 上的 socket.io 无法从 Android 连接

如何在 Jetpack Compose 中将文本绘制在另一个对象的中心?

Android 模拟器 Wifi 连接没有互联网

如何用jetpack compose实现垂直李克特量表

LazyColumn 项目,隐式接收器无法在此上下文中调用单元

无法通过 retrofit 解析对 kotlin 数据类的 xml 响应

喷气背包组成影子奇怪的行为

Kotlin Coroutines 会取代 AsyncTask 吗?

如何在 Android Studio 中创建新的可组合函数?

并行运行两个挂起函数并在第一个返回时返回

在 android list 中添加 IsMonitoringTool 元数据标志的位置

Firebase Crashlytics 缩小 R8 Android

Android Studio,Db 连接错误:发生异常情况导致驱动程序失败.请报告此异常