Autore Topic: inflater.infate()  (Letto 376 volte)

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
inflater.infate()
« il: 14 Dicembre 2014, 08:43:13 CET »
Nella riga

rootView=inflater.inflate(R.layout.fragment_fragment2, container, false);

che significa l'ultimo parametro boleano?
Il parametro "container" e' fisso vero? Nel senso che non cambia mai, va sempre scritto "container" vero?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1182
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:inflater.infate()
« Risposta #1 il: 14 Dicembre 2014, 09:45:07 CET »
veramente no. container deve essere un oggetto :)

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:inflater.infate()
« Risposta #2 il: 14 Dicembre 2014, 11:52:23 CET »
Nell'esempio che ti ho fatto nell'altro thread questa riga sta all'interno della oncreateview di un fragment.

Per rispondere alle tue domande:

Citazione
Il parametro "container" e' fisso vero? Nel senso che non cambia mai, va sempre scritto "container" vero?
Il parametro container in questo caso è passato alla oncreateview dal sistema.
Rappresenta la view "base" (o root).

Citazione
che significa l'ultimo parametro boleano?
L'ultimo parametro booleano indica se vuoi aggiungere la view sulla quale stai facendo l'inflate alla root view o no.
In questo caso lavorando coi fragment tu vuoi creare una nuova view e restituirla al sistema (il return rootView), quindi non ha senso aggiungerla alla root.

La domanda sorge spontanea: perché devi passare una root view (container) se poi chiedi di non aggiungere la view alla root view?
Perché il metodo inflate prende dalla root view i parametri del layout che gli servono per costruire la nuova view.

Quindi in un caso specifico come la oncreateview di un fragment, si può dire che nel 90% dei casi tu passi il container come secondo parametro e setti false sul terzo. Prendi la nuova view e la restituisci con il return rootView.

 :-)