Wie überprüfe ich, ob ein viewStub bereits aufgeblasen ist?

8

Ich habe keine boolesche Methode gefunden, die diese Aufgabe erledigt. Kann ich dies tun, indem ich überprüfe, ob sich die id der viewStub auf die als inflatedid angegebene geändert hat?

Java-Code:

%Vor%

Aktualisieren Kommentare zu der Ausgabe

Gemäß diesem Code zeigt der toast immer seine Nachricht an, was bedeutet, dass mViewStub findViewById zugewiesen ist und nie null ist, außer dass die viewstub Ansicht im darunterliegenden Alyout nicht verfügbar ist. Irgendwelche Vorschläge.?

%Vor%     
LetsamrIt 21.05.2014, 12:25
quelle

5 Antworten

14

Wir können den ViewStub Quellcode sehen, die wichtigste Methode ist inflate() ,

%Vor%

Beachten Sie diese Zeile parent.removeViewInLayout(this) , die nach dem infllate im Layout entfernt wurde. So können wir überprüfen, ob ein viewStub bereits auf diese Weise aufgebläht ist.

%Vor%     
Shuang Zhu 06.02.2015 10:27
quelle
2

Hinweis von Google:

  

Wenn ein ViewStub sichtbar gemacht wird oder wenn inflate () aufgerufen wird, wird der   Layout-Ressource ist aufgeblasen.

Sie können also die Sichtbarkeit überprüfen (oder sogar prüfen, ob sie "null" ist).

    
SaDeGH_F 21.05.2014 12:44
quelle
1

Aufruf von yourViewStub.visibility(View.VISIBLE) Sie müssen nicht überprüfen, ob es aufgebläht ist oder nicht.

    
Oscar Josue Alvrez 05.08.2016 02:30
quelle
0
%Vor%     
Abhilash Das 07.09.2017 08:07
quelle
-5

Ich habe es mit flags gelöst. Ich habe eine globale boolesche Variable isInflatedBefore set deklariert zunächst zu false

Code:

%Vor%     
LetsamrIt 21.05.2014 15:39
quelle

Tags und Links