2013-01-12 7 views
15

Gibt es eine dynamische Möglichkeit, das Stammlayout (dasjenige, das das übergeordnete Element aller anderen Layouts ist) in der XML-Datei zu erhalten, die aktuell auf meine Aktivität festgelegt ist?Suchen des Stammlayouts in Aktivität

Was ich nach ist nicht mein Root-Layout eine explizite ID geben und es über findViewById zu finden, ich bin der Hoffnung, etwas entlang der Linien bekommen von

Pseudocode:

this.findTopLayout(); 

bereits setContentView(R.layout.foo); genannt

Ich sehe nichts in der Spezifikation, die den Trick tun würde, vermisse ich es einfach, oder gibt es keine Möglichkeit, dies zu tun?

+1

Ist das wonach Sie suchen? http://stackoverflow.com/questions/4486034/get-root-view-from-current-activity – DeeV

+0

es scheint, dass genau das ist, was ich suche ... Sie sollten es als Antwort posten, und ich ' Ich gebe dir das grüne Häkchen (und vielen Dank) –

Antwort

48

Sie auf diese Weise versuchen, das Stammlayout zu erhalten:..

getWindow() getDecorView() findViewById (android.R.id.content); ..

OR

getWindow() getDecorView() getRootView();

+0

macht den Trick! –

2

Hinweis, die aus dem Verfahren abgesehen von Grishu beschrieben, können Sie auch die Methode getParent auf jede Ansicht verwenden können (dazu gehören Knöpfe, imageviews, Layouts, etc.), um die Eltern dieser Ansicht zu erhalten (die Eltern zurück könnte auch ein Elternteil haben). Daher wäre eine alternative Methode, getParent von einer bestimmten Ansicht aus zu wiederholen, bis getParent null zurückgibt. An diesem Punkt hätten Sie die Stammansicht Ihrer Inhaltsansicht gefunden.

+0

Ja, das ist nützlich in die andere Richtung, aber ich hoffe (und die Kommentare scheinen genau diese Antwort zu geben), um zu vermeiden, irgendetwas über das Layout zu wissen und einfach von oben nach unten hinein zu laufen. –

+0

Sie müssen nichts über das Layout oder die Ansicht wissen, selbst wenn getParent aufgerufen wird. –

+0

Nein, aber ich müsste die ID des Kindes wissen, um es zuerst zu bekommen, richtig? Oder fehlt mir etwas? –

Verwandte Themen