我想将我的图标置于收件箱的中心.我已经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: