Как стать автором
Обновить
9.12

Jetpack Compose *

декларативный UI Framework для Android

Сначала показывать
Порог рейтинга

rememberSaveable Compose

rememberSaveable ведет себя так же, как и remember, сохраняя состояние при рекомпозиции, но также позволяет пережить поворот экрана

Все типы данных, которые можно добавить в Bundle, сохраняются автоматически. Если требуется сохранить то, что нельзя добавить в Bundle, есть несколько вариантов

MapSaver

ListSaver

Parcelize Пример ниже

@Parcelize
data class City(val name: String, val country: String) : Parcelable

@Composable
fun CityScreen() {
    var selectedCity = rememberSaveable {
        mutableStateOf(City("Madrid", "Spain"))
    }
}

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Таймер на LaunchedEffect в Compose

LaunchedEffect(keyN) запустит свою лямбду, в начале композиции. LaunchedEffect будет запускать свою лямбду снова каждый раз, когда изменится один из заданных ключей keyN

Причем в лямбде будет находится coroutine context

@Composable
fun Timer() {
    var seconds by remember { mutableStateOf(0) }

    LaunchedEffect(seconds) {
            delay(1000)
            seconds++
        }

    Text(text = "Seconds: $seconds")
}

mutableStateOf - Создает State при изменении которого compose функция перезапускается

remember - сохраняет этот State при каждом перезапуске функции

remember + mutableStateOf

Теги:
Рейтинг0
Комментарии0