WEBVTT

00:00.350 --> 00:01.310
Bentornati.

00:01.310 --> 00:06.710
In questo video, creeremo un'applicazione per capire i frammenti in Android Aprite Android studio, selezionate

00:06.710 --> 00:11.930
nuovo progetto, selezionate l'attività Viste vuote e la chiamerò applicazione Frammento.

00:11.930 --> 00:15.560
E creare un frammento è come creare un'attività.

00:15.560 --> 00:19.040
Selezionare un nuovo frammento di selezione non attivo.

00:19.040 --> 00:22.670
E ci sono diversi tipi di frammenti.

00:22.670 --> 00:28.100
Selezionerò lo spazio vuoto e anche nella galleria, se si seleziona la galleria, si possono vedere questi

00:28.100 --> 00:28.640
tipi.

00:28.640 --> 00:31.160
Mi interessa il frammento vuoto.

00:31.160 --> 00:38.810
Poi, il nome del frammento, lo nomino come primo frammento, il nome del layout del frammento, il nome del frammento con il trattino basso.

00:38.810 --> 00:42.530
Questo è per il file di layout e il linguaggio sorgente è Java per ora.

00:42.530 --> 00:45.350
Più avanti in questo corso, utilizzerò la finitura Kotlin.

00:45.350 --> 00:46.580
Ed eccoci qui.

00:46.610 --> 00:55.040
Non abbiate paura di questo codice, li cancellerò tutti per poterlo illustrare in dettaglio nei prossimi

00:55.040 --> 00:56.030
minuti.

00:56.060 --> 01:04.590
Un frammento come un'attività ha un file di layout XML e una classe Java che rappresenta il controllore del frammento.

01:04.590 --> 01:06.690
È simile all'attività.

01:06.690 --> 01:09.870
Progetterò il layout di questo frammento underscore.

01:09.870 --> 01:16.680
Per prima cosa vado in modalità divisa e creo il colore di sfondo per questo layout.

01:16.680 --> 01:24.330
Modifico gli attributi di visualizzazione del testo, lo faccio diventare di dimensione 48 e il testo qui lo cambio in primo luogo.

01:24.630 --> 01:27.900
Inoltre, è possibile definire altre viste come il pulsante.

01:32.140 --> 01:33.670
Trascinare e rilasciare qui.

01:33.670 --> 01:36.460
Ma non abbiamo a che fare con i constraintlayout.

01:36.490 --> 01:38.660
Abbiamo a che fare con la disposizione delle cornici.

01:38.680 --> 01:44.370
Il layout a cornice è progettato per bloccare un'area dello schermo per visualizzare un singolo elemento.

01:44.380 --> 01:51.220
È come una cornice che può contenere e visualizzare una cosa sopra un'altra, consentendo alle viste figlio

01:51.260 --> 01:53.590
di sovrapporsi l'una all'altra.

01:53.620 --> 02:00.880
Le viste figlio sono impilate nell'ordine in cui sono state aggiunte nel layout della cornice, con l'ultimo figlio aggiunto

02:00.880 --> 02:02.220
che appare in cima.

02:02.230 --> 02:07.900
Si può vedere che ho aggiunto il pulsante ed è sovrapposto e sopra la visualizzazione del testo.

02:07.900 --> 02:12.370
La soluzione per evitare la sovrapposizione è aggiungere dei margini.

02:12.370 --> 02:15.630
E qui aggiungerò il margine superiore a 100 DPI.

02:15.670 --> 02:19.120
Si può notare che questo è il nostro primo frammento e questo è il nostro bot.

02:19.120 --> 02:25.090
Andiamo al primo frammento della classe Java e vediamo che estende il frammento.

02:25.090 --> 02:31.510
Quando si vuole creare un frammento personalizzato, di solito si eredita dalla classe fragment per definire i

02:31.610 --> 02:34.100
frammenti, il comportamento e l'aspetto.

02:34.100 --> 02:41.420
Quindi, estendendo la classe Fragment, si ereditano le funzionalità di base e la gestione del ciclo di vita fornite dalla

02:41.420 --> 02:47.570
classe Fragment, che include una serie di metodi del ciclo di vita che si possono sovrascrivere nel frammento

02:47.570 --> 02:54.260
personalizzato per controllare ciò che accade nelle diverse fasi dell'esistenza del frammento.

02:54.260 --> 02:58.250
Abbiamo parlato di questi metodi di callback nella lezione precedente.

02:58.250 --> 03:04.370
È possibile sovrascrivere su attach, su start e su altri metodi.

03:04.370 --> 03:10.880
Il metodo più importante che viene utilizzato e sovrascritto nei frammenti si chiama Oncreate.

03:10.880 --> 03:18.800
I frammenti di vista possono definire le proprie interfacce utente utilizzando file di layout, XML o creando programmaticamente elementi dell'interfaccia

03:18.800 --> 03:20.180
utente.

03:20.180 --> 03:24.260
Ma preferisco definire gli elementi dell'interfaccia utente usando il layout.

03:24.260 --> 03:33.830
Il metodo Oncreate della vista viene spesso sovrascritto per gonfiare il layout dei frammenti o costruire i componenti dell'interfaccia utente in modo

03:33.830 --> 03:34.970
programmatico.

03:34.970 --> 03:42.560
Quando un frammento viene collegato per la prima volta a un'attività o deve visualizzare la sua interfaccia utente, Android chiama il metodo

03:42.590 --> 03:43.790
Oncreate view.

03:43.790 --> 03:51.170
Se osserviamo la firma del metodo, notiamo che ci sono tre parametri, uno dei quali di tipo inflator.

03:51.170 --> 03:56.360
Il secondo è di tipo gruppo di visualizzazione e il terzo è di tipo bundle.

03:56.390 --> 03:57.980
Il primo è il gonfiatore.

03:57.980 --> 04:05.240
È un'istanza di layout inflator che può essere usata per gonfiare un layout da una risorsa XML.

04:05.240 --> 04:10.670
Il contenitore è la vista padre a cui l'interfaccia utente dei frammenti deve essere collegata.

04:10.670 --> 04:18.230
Questo parametro è utile quando si vuole determinare il genitore del layout, ma non si deve collegare esplicitamente l'interfaccia

04:18.260 --> 04:20.780
utente a questo contenitore.

04:20.780 --> 04:27.410
Invece, per gestire l'istanza salvata di questo lavoro, si deve usare il metodo inflate.

04:27.410 --> 04:34.220
State un bundle che fornisce informazioni sullo stato precedente del frammento, utile per ripristinare

04:34.220 --> 04:36.320
lo stato del frammento.

04:36.320 --> 04:43.880
Poiché il nostro frammento contiene una vista di testo e un pulsante, è necessario definirli qui nel metodo Create

04:43.880 --> 04:44.600
View.

04:44.600 --> 04:51.530
Potete sbarazzarvi di questi metodi e in seguito aggiungerò gli altri, ma voglio che vi concentriate

04:51.530 --> 04:53.780
con me sulla vista Oncreate.

04:53.780 --> 04:56.360
È simile al metodo Oncreate.

04:56.360 --> 04:58.470
Qui si definiscono gli elementi dell'interfaccia utente.

04:58.500 --> 05:08.240
Inizierò con l'istanza di vista uguale a inflator dot inflate AR dot layout dot fragment.

05:08.240 --> 05:09.950
Per prima cosa devo gonfiare.

05:09.950 --> 05:12.050
Voglio visualizzare il layout.

05:12.050 --> 05:16.610
Il secondo parametro è il contenitore e l'ultimo parametro è false.

05:16.610 --> 05:23.810
Abbiamo parlato del gonfiatore di layout e di come gonfiare i layout nelle applicazioni precedenti e nella sezione precedente.

05:23.810 --> 05:32.120
Ma come panoramica, questa linea è un modello comune usato in Android per gonfiare un file di risorse di layout

05:32.120 --> 05:34.220
XML in un oggetto vista.

05:34.220 --> 05:39.190
Analizziamo ogni parte di questa linea per capire cosa fa l'infusore.

05:39.200 --> 05:41.930
Si tratta di un'istanza della classe layout inflator.

05:41.930 --> 05:49.760
È un servizio di sistema fornito da Android che consente di prendere un file di risorse di layout XML e di convertirlo in un oggetto

05:49.760 --> 05:56.900
di visualizzazione corrispondente in memoria Il metodo Inflate è un metodo fornito dalla classe layout inflator e viene

05:56.900 --> 06:04.520
utilizzato per creare un oggetto di visualizzazione da una risorsa di layout XML o da un frammento di punto di layout.

06:04.520 --> 06:05.090
Primo.

06:05.090 --> 06:09.620
È un riferimento al file di risorse di layout XML che si desidera gonfiare.

06:09.620 --> 06:14.510
Il contenitore è il parametro che rappresenta il gruppo di viste padre.

06:14.510 --> 06:19.880
Di solito un layout di cornice che sarà un genitore del layout gonfiato.

06:19.880 --> 06:25.250
Specifica la posizione del layout gonfiato nella gerarchia.

06:25.280 --> 06:28.940
L'interfaccia utente dei frammenti sarà aggiunta a questo contenitore.

06:28.940 --> 06:29.630
Falso.

06:29.630 --> 06:31.520
Questo è il parametro finale.

06:31.680 --> 06:36.450
Indica se il layout gonfiato deve essere collegato immediatamente al contenitore.

06:36.450 --> 06:36.760
Quando?

06:36.780 --> 06:43.140
Se si imposta false, significa che si aggiungerà manualmente il layout gonfiato al contenitore, in genere restituendolo

06:43.140 --> 06:46.000
dal metodo di visualizzazione Oncreate.

06:46.020 --> 06:50.760
Ora otterrò il riferimento per i miei widget che ho definito qui.

06:50.790 --> 06:53.010
Un pulsante e un pulsante di visualizzazione del testo.

06:53.010 --> 06:56.750
Il primo pulsante equivale a view dot find view by id.

06:56.760 --> 06:58.530
Sto usando questo riferimento.

06:58.530 --> 07:03.230
Ecco quali sono. pulsante id punto un fotogramma.

07:03.240 --> 07:08.130
Inoltre, devo aggiungere un ID per questa vista di testo, trascinandone uno.

07:12.100 --> 07:14.470
E come le ho detto, la farò semplice.

07:14.470 --> 07:19.450
Quindi inizierò con il primo pulsante, punto impostato su ascoltatore di clic, nuova vista su ascoltatore di clic.

07:19.450 --> 07:24.940
E qui visualizzerò un messaggio di benvenuto al primo frammento.

07:27.360 --> 07:32.930
E non perdete l'occasione di restituire la vista perché abbiamo saltato l'istruzione return.

07:32.940 --> 07:34.760
Vista di ritorno.

07:34.770 --> 07:42.750
Ecco come creare il nostro primo frammento e come utilizzare il metodo più importante, ovvero la

07:42.750 --> 07:44.190
vista Oncreate.
