Вызывает ли сохранение ссылки на LazyListState в ViewModel утечку памяти?Android

Фору для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Вызывает ли сохранение ссылки на LazyListState в ViewModel утечку памяти?

Сообщение Гость »


У меня есть LazyColumn, и я хочу прокрутить список до начала, проведя пальцем по нему для обновления. Я использую обновление Compose для макета обновления с помощью смахивания. Я сохраняю lazyliststate в своей модели представления, чтобы прокручивать список до начала после завершения вызова loadList.

`@Composable весело pullRefreshList( контакты: Список, навконтроллер: Навконтроллер, модификатор: Модификатор = Модификатор, ) { val viewModel = viewModel() обновление val с помощью viewModel.isRefreshing.collectAsState() val listState = RememberLazyListState() viewModel.onRefreshFinished = { // Прокрутка вверх при вызове обратного вызова listState.scrollToItem(0) } val pullRefreshState = RememberPullRefreshState(обновление, viewModel::loadList) Box(Modifier.pullRefresh(pullRefreshState)) { LazyColumn (состояние = listState, модификатор = модификатор) { элементы(контакты) { имя_контакта -> Ряд( модификатор = Модификатор .height(30.dp) .fillMaxWidth() .clickable { navController.navigate("screen2") }, ГоризонтальноеРасположение = Расположение.Центр, ) { Текст (текст = имя_контакта, размер шрифта = 24.sp) } } } PullRefreshIndicator(обновление, pullRefreshState, Modifier.align(Alignment.TopCenter)) } }` Моя модель представления, в которой я храню ссылку на lazyliststate – `класс MainViewModel: ViewModel() { частный val _isRefreshing = MutableStateFlow (false) val isRefreshing = _isRefreshing.asStateFlow() частная переменная nextInt = 0 var onRefreshFinished: (suspend () -> Unit)? = ноль весело loadList() { viewModelScope.launch { _isRefreshing.value = правда добавить в список() _isRefreshing.value = ложь onRefreshFinished?.invoke() } } }` Значит, в пользовательском интерфейсе на основе XML мы обычно не хотим хранить ссылку на представление в модели представления, потому что это может вызвать утечку памяти? В Compose, приведет ли это к утечке данных?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

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

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

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

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

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