Как правильно обрабатывать загрузку инициалов в качестве заполнителей в Jetpack Compose

Я пытаюсь показать инициалы, когда пользователь не загружает значок или не устанавливает значок, моя единственная проблема заключается в том, что наш код использует компоновку реактивного ранца, и я не нашел лучшего способа отобразить это. Мой код ниже, но этот код рисует имя не на карте.

У меня есть 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() }

Вот так выглядит рисунок сзади.

Emm,Вы можете использовать @Composable Box вместо карты, элемент комбинации карт имеет zIndex

Halifax 11.01.2023 03:58

Опубликовать код ProfileCard

Gabriele Mariotti 11.01.2023 07:40
Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Ускорьте разработку веб-приложений Laravel с помощью этих бесплатных стартовых наборов
Laravel - это мощный PHP-фреймворк, используемый для создания масштабируемых и надежных веб-приложений. Одним из преимуществ Laravel является его...
Что такое двойные вопросительные знаки (??) в JavaScript?
Что такое двойные вопросительные знаки (??) в JavaScript?
Как безопасно обрабатывать неопределенные и нулевые значения в коде с помощью Nullish Coalescing
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание ресурсов API Laravel: Советы по производительности и масштабируемости
Создание API-ресурса Laravel может быть непростой задачей. Она требует глубокого понимания возможностей Laravel и лучших практик, чтобы обеспечить...
Как сделать компонент справочного центра с помощью TailwindCSS
Как сделать компонент справочного центра с помощью TailwindCSS
Справочный центр - это веб-сайт, где клиенты могут найти ответы на свои вопросы и решения своих проблем. Созданный для решения многих распространенных...
Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
0
2
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вставьте 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))
        }
    }
}

Другие вопросы по теме

Похожие вопросы

Как загрузить изображение из ресурсов в Jetpack Compose
Проблемы с регистрацией фотографий в программировании для Android
Получить поле из LocalDate, которое имеет более одного события
Список элементов Android RecyclerView не изменяется должным образом после изменения настроек и снова переходит к фрагменту
Я создал нативное приложение, которое отлично работает в режиме отладки, но в выпуске APK появляется экран банка.
Приложение React Native для Android отлично работает в режиме отладки, но когда мы выпускаем apk, оно создает более старую версию приложения.
Потери входных данных при переходе между входными страницами формы
Приложение Cordova Ionic — push-уведомления не работают на Android 12 и Android 13 — Cordova-android 11.0
Есть ли какой-либо способ или пакет, который может периодически запускать фоновые задачи каждую минуту в трепетании
Как сделать прозрачный фон в Box Jetpack Compose