Метод showSnackbar
Метод showSnackbar класса
SnackbarHostState
добавляет сообщение для
SnackbarHost.
Это suspend-функция. Параметр
message задаёт текст полоски.
Вызов делают внутри launch
из rememberCoroutineScope.
Синтаксис
snackbarHostState.showSnackbar("abcde")
Параметры
| Параметр | Описание |
|---|---|
message |
Текст, который увидит пользователь на полоске snackbar. |
Пример
Давайте покажем сообщение по нажатию кнопки:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val snackbarHostState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()
Scaffold(
snackbarHost = {
SnackbarHost(hostState = snackbarHostState)
},
) { padding ->
Button(
onClick = {
scope.launch {
snackbarHostState.showSnackbar("abcde")
}
},
modifier = Modifier.padding(padding),
) {
Text(text = "12345")
}
}
}
}
}
На экране внизу появится snackbar
с текстом "abcde".
Пример
Давайте сменим текст второго сообщения:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import kotlinx.coroutines.launch
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val snackbarHostState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()
Scaffold(
snackbarHost = {
SnackbarHost(hostState = snackbarHostState)
},
) { padding ->
Button(
onClick = {
scope.launch {
snackbarHostState.showSnackbar("12345")
}
},
modifier = Modifier.padding(padding),
) {
Text(text = "abcde")
}
}
}
}
}
На экране полоска покажет "12345"
над нижней частью каркаса.
Смотрите также
-
класс
SnackbarHostState,
у которого объявлен showSnackbar -
функция
SnackbarHost,
которая рисует сообщение из очереди -
функция
Snackbar,
которой оформляют полоску -
функция
Scaffold,
где размещают хост сообщений