2014-05-19 16 views
15

Mi è stata posta una domanda di intervista che Un frammento esiste senza attività? Ho cercato le risposte ma non ho avuto la risposta e le spiegazioni corrette, qualcuno mi può aiutare in questa domanda? Le risposte saranno apprezzate.frammento senza attività

+4

leggere i documenti http://developer.android.com/guide/components/fragments.html. – Raghunandan

+0

Citazione dei documenti "Non è necessario che un frammento faccia parte del layout dell'attività, ma è anche possibile utilizzare un frammento senza la propria UI come lavoratore invisibile per l'attività". Solo in questo caso è possibile avere un frammento non associato all'attività – Raghunandan

risposta

12

Sì, si può fare questo ovunque:

new YourFragment(); 

come frammenti devono avere un costruttore senza parametri.

Tuttavia, il suo lifecycle non entra in azione finché non viene collegato. Quindi, onAttach, onCreate, onCreateView, ecc. Vengono chiamati solo quando è collegato. Quindi la maggior parte dei frammenti non fa nulla finché non sono attaccati.

+1

Qualcuno mi ha chiesto se un servizio può avere Frammento. Ho detto di sì, era sorpreso. Ma si dovrebbe ricordare che si può avere Frammento e chiamare qualsiasi metodo, ma come menzionato da @weston il suo ciclo di vita non entrerà in funzione fino a quando non sarà collegato all'Attività. Inoltre, è necessario disporre di un'istanza di FragmentManager per gestirli (cosa possibile solo in Activity). –

7

Può esistere come oggetto in memoria (creandolo con new), ma deve essere collegato a un'attività per apparire sullo schermo, supponendo che abbia un'interfaccia utente (i frammenti non devono avere UI).

2

Android deve avere un'attività o FragmentActivity che gestisce il frammento ...

Frammento gergo di essere avviata in assenza di attività o FragmentActivity ..

3

Un frammento può esistere indipendentemente ma per visualizzarlo è necessario l'aiuto di un'attività. L'attività agirà come un contenitore per i frammenti.

3

A fragment non è necessario che sia una parte di Activity layout; è inoltre possibile utilizzare uno fragment senza il proprio UI come lavoratore invisibile per lo Activity ma deve essere collegato a uno Activity per poter essere visualizzato sullo schermo.

0

Non appena si crea una classe di Fraging, esiste ma per apparire sull'interfaccia utente è necessario associare tale frammento a un'attività perché il ciclo di vita di un frammento viene eseguito parallelamente a LifeCycle.So di Activity, senza alcuna chiamata a Activity onCreate () non ci sarà alcuna chiamata per onAttach(), onCreate(), onCreateView() e onActivitycreated() del frammento e quindi non può essere avviato.

Problemi correlati