У меня есть экран Compose для страницы результатов поиска. Я хочу показать индикатор загрузки при выполнении поиска, но при последующих поисках я хочу сохранить старые результаты поиска под индикатором загрузки. Вроде как работает React undiferredValue. Поиск быстрый, но не сразу, поэтому я вижу мерцание между результатами поиска и индикатором загрузки. Вот упрощенный пример: < /p>
У меня есть экран Compose для страницы результатов поиска. Я хочу показать индикатор загрузки при выполнении поиска, но при последующих поисках я хочу сохранить старые результаты поиска под индикатором загрузки. Вроде как работает React undiferredValue. Поиск быстрый, но не сразу, поэтому я вижу мерцание между результатами поиска и индикатором загрузки. Вот упрощенный пример: < /p> [code]class MainViewModel : ViewModel() { private val query = MutableStateFlow("")
Column(modifier = modifier) { OutlinedTextField(state = query) if (query.text.isNotEmpty()) { when (searchResultItems.loadState.refresh) { is LoadState.Loading -> { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { CircularProgressIndicator(modifier = Modifier.size(96.dp)) } } is LoadState.Error -> Text("Error") is LoadState.NotLoading -> { if (searchResultItems.itemCount > 0) { LazyColumn { items( searchResultItems.itemCount, searchResultItems.itemKey(Model::id), ) { index -> val searchResult = searchResultItems[index]!! ListItem(headlineContent = { Text(searchResult.name) }) HorizontalDivider() } } } else { Text("No results") } } } } } } [/code] Как мне сохранить старые результаты поиска до тех пор, пока новые не будут полностью загружены?