Ich habe eine ImageView
, die ich an eine MenuItem
als ActionView
(der Artikel erscheint in der ActionBar
) anhängen. Das Layout für diese Ansicht stammt aus XML. Ich blase es so auf:Was soll ich für root übergeben, wenn ich ein Layout für die ActionView eines MenuItems aufblase?
ImageView actionView = (ImageView) layoutInflater.inflate(
R.layout.action_view_layout, null);
Dies scheint gut zu funktionieren. Jedoch; null für root
in dem Aufruf von inflate()
vorbei macht Lint schreien mich an:
vermeiden wie die Ansicht root null vorbei (müssen Layout Parameter auf den aufgeblasenen Layout des Wurzelelement lösen)
ich kann scheinbar ohne Root in meinem speziellen Fall, aber ich würde lieber den Code so korrekt wie möglich haben. Das Problem ist, ich bin mir nicht sicher, welche View
als Root hier verwendet werden sollte. This answer sagt, es sollte "das Widget sein, das die Ansichtsobjekte umgibt, die Sie aufblasen möchten." Aber was heißt das hier? Der für die Aktionsleiste? Die Aktivität? Etwas ganz anderes?
Update: die Antworten Lesen hat mich mich vermuten, dass das Richtige zu tun ist:
- die
ActionBar
View
zumMenuItem
- entsprechenden Erhalten seiner Wurzel
- Cast Holen Sie sich das Wurzel zu einem
ViewGroup
- Übergeben Sie das Ergebnis an den Inflatter
Dies scheint zu funktionieren. Kann jemand bestätigen oder leugnen, ob dies getan werden sollte?
gibt es einen ausgezeichneten Artikel über diese: http://www.doubleencore.com/2013/05/layout-inflation-as-intended/ (dh in Bezug auf Inflation, nicht in Bezug auf die Frage selbst) –