Ho un ImageView
che allego allo MenuItem
come ActionView
(l'elemento appare nello ActionBar
). Il layout per questa vista proviene da XML. Lo sto gonfiando in questo modo:Cosa devo passare per root quando si gonfia un layout da utilizzare per un ActionView di MenuItem?
ImageView actionView = (ImageView) layoutInflater.inflate(
R.layout.action_view_layout, null);
Sembra funzionare correttamente. Però; passando null per root
nella chiamata a inflate()
rende Lint sgridarmi:
Evitare passando null come radice vista (necessità di risolvere la layout parametri elemento principale del layout di gonfiato)
posso apparentemente gestisco senza una radice nel mio caso specifico, ma preferirei che il codice fosse il più corretto possibile. Il problema è che non sono sicuro di quale View
debba essere usato come root qui. This answer dice che dovrebbe essere "il widget che circonda gli oggetti della vista che si desidera gonfiare". Ma cosa significa qui? Quello per la barra delle azioni? L'attività? Qualcos'altro interamente?
Aggiornamento: Leggendo le risposte mi ha fatto la cosa giusta da fare me il sospetto è:
- Prendi il
ActionBar
View
corrispondente alMenuItem
- Ottenere la sua radice
- Gettate la radice a
ViewGroup
- Passare il risultato al gonfiatore
Questo sembra funzionare. Qualcuno può confermare o negare se questo è ciò che dovrebbe essere fatto?
c'è un eccellente articolo su questo: http://www.doubleencore.com/2013/05/layout-inflation-as-intended/ (ie, per quanto riguarda l'inflazione, non per quanto riguarda la domanda stessa) –