Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
328 of 502 menu
◀ ▶

Класс MutableState

Интерфейс MutableState наследует State и добавляет запись в value. Объект получают из mutableStateOf. Присвоение нового value планирует перерисовку composable, которые его читают. С делегатом by пишут text = "12345" вместо text.value = "12345".

Синтаксис

val state: MutableState<String> = mutableStateOf("abcde") state.value = "12345"

Пример

Давайте изменим value по нажатию:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { var text by remember { mutableStateOf("abcde") } Button(onClick = { text = "12345" }) { Text(text = "abcde") } Text(text = text) } } }

На экране под кнопкой текст сменится на "12345".

Пример

Давайте обратимся к value явно:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val label: MutableState<String> = remember { mutableStateOf("abcde") } Button(onClick = { label.value = "12345" }) { Text(text = "abcde") } Text(text = label.value) } } }

На экране тот же эффект: после нажатия видно "12345".

Смотрите также

  • класс State,
    родительский интерфейс только для чтения
  • функция mutableStateOf,
    которая создаёт MutableState
  • функция remember,
    где хранят один объект состояния
  • функция rememberSaveable,
    которая сохраняет MutableState в Bundle
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить