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

Функция AlertDialog

Функция AlertDialog рисует окно поверх экрана с заголовком, текстом и кнопками действий. Закрытие задают в onDismissRequest, основную кнопку - в confirmButton, отмену - в dismissButton, заголовок и текст - в лямбдах title и text.

Синтаксис

AlertDialog( onDismissRequest = { }, confirmButton = { TextButton(onClick = { }) { Text("abcde") } }, dismissButton = { TextButton(onClick = { }) { Text("12345") } }, title = { Text("abcde") }, text = { Text("12345") }, )

Параметры

Параметр Описание
onDismissRequest Лямбда без аргументов. Срабатывает, когда диалог нужно закрыть: по кнопке «назад» или по клику вне окна.
confirmButton Лямбда с главной кнопкой действия. Чаще всего внутри вызывают TextButton.
dismissButton Лямбда с кнопкой отмены. Можно не передавать, если второе действие не нужно.
title Лямбда с заголовком диалога. Обычно внутри вызывают Text.
text Лямбда с основным текстом под заголовком. Тоже чаще всего через Text.

Пример

Давайте выведем диалог с двумя кнопками:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.material3.TextButton class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { AlertDialog( onDismissRequest = { }, confirmButton = { TextButton(onClick = { }) { Text(text = "abcde") } }, dismissButton = { TextButton(onClick = { }) { Text(text = "12345") } }, title = { Text(text = "abcde") }, text = { Text(text = "12345") }, ) } } }

На экране поверх содержимого появится окно с заголовком, текстом и двумя текстовыми кнопками внизу.

Пример

Давайте оставим только кнопку подтверждения:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.material3.TextButton class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { AlertDialog( onDismissRequest = { }, confirmButton = { TextButton(onClick = { }) { Text(text = "abcde") } }, title = { Text(text = "abcde") }, text = { Text(text = "12345") }, ) } } }

На экране в диалоге останется одна кнопка с подписью "abcde", без отдельной отмены.

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

  • функция TextButton,
    которой набирают кнопки в слотах диалога
  • функция Button,
    если нужна залитая кнопка вместо текстовой
  • функция Text,
    которой задают заголовок и текст диалога
  • функция Card,
    которая тоже рисует отдельный блок на экране
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить