WEBVTT

1
00:00.800 --> 00:02.960
Dobbiamo risolvere questo problema.

2
00:02.960 --> 00:08.120
Le invocazioni compostabili possono
avvenire solo dal contesto di una funzione
compostabile.

3
00:08.120 --> 00:17.030
Per questo, dobbiamo modificare il nostro
codice in modo da chiamare e

4
00:17.030 --> 00:19.310
visualizzare correttamente la finestra di
avviso quando il pulsante viene cliccato.

5
00:19.340 --> 00:22.970
A tale scopo, è necessario accedere alla
finestra di dialogo di visualizzazione
degli avvisi.

6
00:22.970 --> 00:28.700
È necessario modificare i parametri di
questa funzione.

7
00:28.700 --> 00:31.940
Dobbiamo passare Showdialog.

8
00:31.970 --> 00:36.890
È di tipo booleano e un altro è l'opzione
on.

9
00:36.890 --> 00:39.680
Il licenziamento on è un'espressione
lambda.

10
00:39.680 --> 00:43.580
Questi sono i due comportamenti showdialog
e on dismiss.

11
00:43.580 --> 00:52.520
Dobbiamo includere questa finestra di
dialogo di avviso nella chiusura if else

12
00:52.520 --> 00:55.190
close, ma dobbiamo verificare se il
parametro showdialog viene passato come
true.

13
00:55.220 --> 00:57.830
Quindi, visualizzare la finestra di
dialogo di avviso.

14
00:57.830 --> 01:00.080
Se Showdialog.

15
01:00.080 --> 01:04.860
Dobbiamo includere l'intero dialogo di
allerta al suo interno.

16
01:04.860 --> 01:08.340
Lo copio e lo sposto all'interno di
questo.

17
01:08.370 --> 01:11.730
Se si chiude, questa è la nostra finestra
di dialogo di avviso.

18
01:11.760 --> 01:15.210
Quindi modifichiamo la richiesta di
licenziamento.

19
01:15.240 --> 01:21.810
Qui lo imposterò su "on dismiss", quindi
scorrerò verso il basso fino al pulsante
di conferma.

20
01:21.840 --> 01:29.610
Dopo la conferma, dobbiamo inserire questa
nota nel database della stanza,
utilizzando il modello di vista passato.

21
01:29.610 --> 01:35.130
Questo è il nostro modello di vista e
dobbiamo chiudere la finestra di dialogo
degli avvisi.

22
01:35.130 --> 01:39.360
Quindi è necessario inserire la nota nel
DB.

23
01:39.390 --> 01:43.950
Per questo utilizzerò il modello di vista
dot insert e imposterò la nota.

24
01:43.950 --> 01:45.690
Questa è la nota che abbiamo creato.

25
01:45.720 --> 01:50.490
Dopo averlo inserito, dobbiamo impostare
il pulsante di chiusura.

26
01:50.490 --> 01:51.330
Il click.

27
01:51.330 --> 01:53.700
Dobbiamo impostarlo come licenziato.

28
01:53.700 --> 01:58.110
In questo modo si controlla il
comportamento della finestra di dialogo
degli avvisi.

29
01:58.110 --> 02:03.940
Torniamo al mio fab e creiamo una
variabile qui.

30
02:03.940 --> 02:07.390
È necessario controllare l'aspetto della
finestra di dialogo degli avvisi.

31
02:07.420 --> 02:14.710
VAR mostra la finestra di dialogo
ricordando lo stato mutabile di false.

32
02:14.740 --> 02:15.370
Alt+.

33
02:15.370 --> 02:17.620
Invio per importare il file.

34
02:17.620 --> 02:19.780
Ricordate questa riga di codice.

35
02:19.780 --> 02:28.120
La finestra di dialogo show viene
utilizzata per creare e gestire lo stato
di una finestra di dialogo show variabile
all'interno di un jetpack.

36
02:28.120 --> 02:34.930
Compose composable e, come già detto, by è
usato per la delega delle proprietà in
Kotlin.

37
02:34.930 --> 02:42.130
Significa che la variabile show dialog
viene delegata a un altro oggetto che

38
02:42.130 --> 02:45.730
ne gestisce lo stato e che ricorda lo
stato mutabile di false.

39
02:45.730 --> 02:51.520
Si ricorda che questa funzione viene
utilizzata per mantenere lo stato tra le
varie ricomposizioni.

40
02:51.520 --> 02:57.130
Quando una funzione compostabile si
ricompone, lo stato creato da remember
viene conservato.

41
02:57.130 --> 03:04.570
Mutable state of è un tipo fornito da
jetpack compose per

42
03:04.570 --> 03:10.490
contenere lo stato. Permette di leggere e
modificare lo stato e

43
03:10.490 --> 03:11.300
attiva automaticamente la composizione dei
componibili interessati quando lo stato
cambia.

44
03:11.300 --> 03:18.950
E questo è esattamente ciò di cui abbiamo
bisogno, perché dobbiamo

45
03:18.950 --> 03:19.430
controllare l'assenza e la presenza della
finestra di dialogo di avviso.

46
03:19.430 --> 03:23.510
Dobbiamo quindi controllarlo in base a
questa variabile.

47
03:23.510 --> 03:26.540
Qui dobbiamo richiamare la nostra finestra
di dialogo di avviso.

48
03:26.540 --> 03:29.480
Quindi visualizza la finestra di dialogo
di avviso.

49
03:29.480 --> 03:31.400
Dobbiamo passare il ViewModel.

50
03:31.400 --> 03:33.230
Dobbiamo passare la finestra di dialogo
dello show.

51
03:33.230 --> 03:36.290
L'ultimo parametro è un'espressione
lambda.

52
03:36.290 --> 03:40.520
Possiamo passarlo che è sul ViewModel
ViewModel licenziato.

53
03:40.520 --> 03:43.850
È necessario passare il ViewModel.

54
03:43.850 --> 03:45.260
La finestra di dialogo dello spettacolo.

55
03:45.290 --> 03:46.460
Mostra la finestra di dialogo.

56
03:46.460 --> 03:52.040
Questa è la nostra variabile e l'ultima è
show dialog uguale a false.

57
03:52.040 --> 03:56.090
Questa è la nostra finestra di dialogo
dismiss show uguale a false.

58
03:56.090 --> 03:57.980
È l'ultimo parametro.

59
03:58.010 --> 04:01.430
Scorriamo verso il basso il pulsante
d'azione fluttuante.

60
04:01.430 --> 04:02.600
Dobbiamo rimuoverlo.

61
04:02.600 --> 04:10.910
Si può notare che la finestra di dialogo
Dialogo viene creata direttamente e senza

62
04:10.910 --> 04:18.890
problemi, perché si tratta di una funzione
compostabile chiamata all'interno
dell'ambito di una

63
04:18.890 --> 04:21.500
funzione compostabile e non all'interno di
un'altra funzione o di una funzione
ordinaria.

64
04:21.500 --> 04:28.550
Quindi le funzioni componibili sono create
solo per essere chiamate all'interno di
un'altra funzione componibile.

65
04:28.550 --> 04:36.980
Non possiamo richiamare la visualizzazione
di alertdialog o qualsiasi altro elemento

66
04:36.980 --> 04:38.780
componibile all'interno di questa funzione
onclick, che è una funzione ordinaria.

67
04:38.780 --> 04:41.540
Quindi onClick è una funzione ordinaria.

68
04:41.540 --> 04:48.800
Non possiamo visualizzare o creare o
chiamare altri oggetti componibili, perché
si tratta di una funzione ordinaria.

69
04:48.800 --> 04:54.230
Si può notare che anche il testo e
qualsiasi altro componibile non possono
essere creati qui.

70
04:54.230 --> 05:01.970
Questo è lo scopo principale dell'utilizzo
di Showdialog e della modifica della
finestra di dialogo

71
05:02.000 --> 05:04.400
di visualizzazione per verificare la
presenza della finestra di dialogo e la
sua chiusura.

72
05:04.430 --> 05:12.300
Ok, non si può chiamare il composable
all'interno di un'altra funzione,

73
05:12.300 --> 05:14.250
ma deve essere chiamato all'interno
dell'ambito di una funzione composable.

74
05:14.250 --> 05:18.900
Creare una logica e impostare showdialog
uguale a true.

75
05:18.900 --> 05:26.820
Quindi, ogni volta che si imposta
showdialog su true, si

76
05:26.820 --> 05:27.300
attiverà nuovamente la ricomposizione di
questo fab e la chiamata.

77
05:27.300 --> 05:28.140
A sua volta.

78
05:28.140 --> 05:34.650
La finestra di dialogo di visualizzazione
e questa finestra di visualizzazione
vedranno se la finestra di dialogo mostra
è passata come vera.

79
05:34.650 --> 05:38.790
In questo caso, è necessario visualizzare
la finestra di dialogo di avviso.

80
05:38.790 --> 05:40.110
Questa è la logica.

81
05:40.110 --> 05:41.430
Questo è l'algoritmo.

82
05:41.430 --> 05:45.300
Come visualizzare una finestra di dialogo
di avviso da un pulsante.

83
05:45.300 --> 05:51.540
L'ultima cosa di cui abbiamo bisogno è
definire un'icona per questo pulsante
d'azione fluttuante.

84
05:51.540 --> 05:57.870
Utilizzate le icone già presenti in
qualsiasi applicazione e nell'SDK di
Android.

85
05:57.870 --> 06:02.550
Quindi qui userò le icone punto di
riempimento e punto di aggiunta.

86
06:02.580 --> 06:03.930
Questo è il segno più.

87
06:03.930 --> 06:06.960
È possibile utilizzare l'aggiunta di una
freccia a cerchio a discesa.

88
06:06.960 --> 06:15.220
È inoltre possibile aggiungerli nella
cartella drawable e creare

89
06:15.220 --> 06:15.790
una nuova risorsa vettoriale immagine o
risorsa vettoriale.

90
06:15.820 --> 06:19.510
È stato richiesto un errore al pittore che
ha trovato il vettore immagine.

91
06:19.510 --> 06:21.310
È possibile accedere all'icona.

92
06:21.340 --> 06:24.220
Esistono molte versioni di questa icona.

93
06:24.220 --> 06:24.850
Componibile.

94
06:24.850 --> 06:26.560
Si vede che è un pittore.

95
06:26.590 --> 06:30.490
Inoltre, abbiamo un'icona componibile che
accetta una bitmap.

96
06:30.490 --> 06:34.840
Inoltre, esiste un'icona componibile che
accetta un'immagine vettoriale.

97
06:34.840 --> 06:41.200
E questo è ciò di cui abbiamo bisogno
anche per, uh, capire di cosa sto
parlando,

98
06:41.200 --> 06:48.550
se volete creare un'icona, potete vedere
che ci sono quattro, forse quattro
versioni di icone componibili

99
06:48.550 --> 06:52.780
una di graphics dot drawable, una di image
vector, una di bitmap e una di painter.

100
06:52.780 --> 06:57.340
Nel nostro caso si può notare che il
pittore ha trovato un'immagine vettoriale.

101
06:57.340 --> 07:02.320
Quindi, usando la logica, utilizzo il
vettore di immagini per risolvere il mio
problema.

102
07:02.320 --> 07:04.900
Descrizione del contenuto e nota


