Загрузка не завершается нажатием кнопки, и в Jetpack Compose не отображается нужный мне пользовательский интерфейс.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Загрузка не завершается нажатием кнопки, и в Jetpack Compose не отображается нужный мне пользовательский интерфейс.

Сообщение Anonymous »

Я создал диалоговое окно, и кнопка внутри диалогового окна имеет флаг isLoading, который показывает CircularProgressIndicator, когда он истинен. На кнопке отображается текст «Смотрите рекламу, чтобы прочитать книгу», если это ложь. Почему-то он продолжает загружаться и не показывает текст. Однако я могу нажать кнопку и перейти на другой экран, и это нормально. Нажатие кнопки не вызывает проблем, но пользовательский интерфейс (продолжает загрузку) имеет проблемы. Кажется, что пользовательский интерфейс не отражается на кнопке. Как я могу отобразить текст на кнопке вместо загрузки? Пожалуйста, помогите мне.
↓Внутри кнопки создания макета
content = {
when {
uiState.isLoading -> CircularProgressIndicator(modifier = Modifier.size(28.dp))
else -> Row(
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = stringResource(id = R.string.watch_ads_to_read_book),
     }

и логика isLoading приведена ниже
private fun buttonUiStateFlow(
key: String,
episodeType: BookEpisodeType?,
maxMovieCount: Int,
): Flow =
flow {
if (episodeType == BookEpisodeType.NORMAL && maxMovieCount > 0) {
emit(ButtonUiState(isLoading = true))

try {
val availableMovieCount = movieService.findTicketUsableMovieCount(key)
emit(ButtonUiState(maxCmCount = maxMovieCount, availableCmCount = availableMovieCount))
} catch (e: Throwable) {
emit(ButtonUiState(isError = true))
}
} else {
emit(null)
}
}

ButtonUiState
@Stable
data class ButtonUiState(
val isLoading: Boolean = false,
val isError: Boolean = false,
val availableCmCount: Int = 0,
)


Подробнее здесь: https://stackoverflow.com/questions/792 ... pack-compo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»