Posledným komponentom používateľského rozhrania, ktorým si chcem s vami prejsť je dialóg. Dialógy sú vyskakovacie okná, ktoré vyžadujú používateľskú interakciu.
V JetPack Compose každý dialóg vytvorí šedý overlay cez celú obrazovku a umožní modifikovať vnútro dialógu. Dialógov
existuje viac, ukážeme si niektoré základné. Zobrazenie alebo nezobrazenie dialógu riešime štandardne pomocou
if (showDialogState) { Dialog() }
Štandardný dialóg. Vyšedí obrazovku a jeho obsah musíš kompletne definovať sám:
Dialog(
onDismissRequest = {},
properties = DialogProperties(
usePlatformDefaultWidth = false,
dismissOnBackPress = false,
dismissOnClickOutside = false,
),
) {
// vizual dialogu
}
onDismissRequest je funkcia, ktorá sa vykoná, keď používateľ vyžiada zatvorenie dialógu (klikom mimo dialóg).usePlatformDefaultWidth nastaví šírku dialógu podľa štandardu platformy.dismissOnBackPress nastaví, či je možné zrušiť dialóg stlačením tlačidla BackdismissOnClickOutside nastaví, či sa dialóg zatvorí pri kliknutí mimo dialógAlertDialog je jednoducho predštýlovaný Dialog:

AlertDialog(
onDismissRequest = {},
properties = DialogProperties(),
title = { Text("Title") },
text = { Text("Text") },
confirmButton = {
Button(onClick = {}) {
Text("Confirm")
}
},
dismissButton = {
Button(onClick = {}) {
Text("Dismiss")
}
},
icon = {}
)
onDismissRequest a propertie - sú totožné s Dialogtitle a text - sú nadpis a text dialóguconfirmButton a dismissButton - sú tlačidla pre potvrdenie a zrušenie dialóguicon - ikona dialóguA ďalšie 2 pekné dialógy sú DatePickerDialog a TimePickerDialog. Jeden slúži na výber dátumu a druhý na výber času.
DatePickerDialog |
TimePickerDialog |
|---|---|
![]() |
![]() |
| Dokumentácia | Dokumentácia |
Ich naštudovanie už nechám na vás.