Я пытаюсь показать инициалы, когда пользователь не загружает значок или не устанавливает значок, моя единственная проблема заключается в том, что наш код использует компоновку реактивного ранца, и я не нашел лучшего способа отобразить это. Мой код ниже, но этот код рисует имя не на карте.
У меня есть ProfileCard, в которой есть изображение и два текста, см. изображение
Моя задача сейчас состоит в том, как мне центрировать инициалы и иметь цвет фона. Я думаю, что рисовать текст не работает. Короче мне интересно, почему он не рисует на моем изображении в карточке.
Как сделать иконки инициалов с помощью Coil в Jetpack Compose
Я хочу добиться чего-то подобного с текстом сбоку
Мой код.
val painter = rememberAsyncImagePainter(model = getProfileAvatar(e.id))
val errorState = painter.state is AsyncImagePainter.State.Error
val emptyState = painter.state is AsyncImagePainter.State.Empty
val isErrorState = painter.state is AsyncImagePainter.State.Error
val textMeasure = rememberTextMeasurer()
val textLayoutResult = textMeasure.measure(text = buildAnnotatedString { append(personName) },
style = TextStyle(color = Color.White,
fontSize = 16.sp))
// the composable Profile Card that has the image and text. Hence the painter is what I //am trying to draw to.
ProfileCard( modifier = Modifier.drawBehind
{ if (errorState || emptyState)
{ drawText(textLayoutResult = textLayout) }
},
painter = painter,
onCardClick = {
})
// Мой загрузчик катушек
private fun getProfileAvatar(id: String) : ImageRequest {
val url = ServiceAPI.photoUrl(id)
return ImageRequest.Builder(requireContext())
.data(url)
.addHeader() )
.build() }
Вот так выглядит рисунок сзади.
Опубликовать код ProfileCard
Вставьте Card в Row с Alignment.CenterVertically.
Что-то вроде:
Card(
modifier = Modifier.fillMaxWidth().height(100.dp),
elevation = 2.dp
){
Row(
modifier = Modifier.padding(16.dp),
verticalAlignment = Alignment.CenterVertically
){
Text(
modifier = Modifier
.padding(16.dp)
.drawBehind {
drawCircle(
color = Teal200,
radius = this.size.maxDimension
)
},
text = "NG",
style = TextStyle(color = Color.White, fontSize = 20.sp)
)
Column(
Modifier.padding(start = 20.dp),
verticalArrangement = Arrangement.spacedBy(4.dp, CenterVertically),
){
Text("Name Surname",style = TextStyle(fontSize = 14.sp))
Text("Active Now",style = TextStyle(fontSize = 14.sp))
}
}
}
Emm,Вы можете использовать @Composable Box вместо карты, элемент комбинации карт имеет zIndex