getWidth Gibt 0 in Fragment zurück, getPaddingLeft gibt Non-Zero zurück

7

Ich versuche, meine Android-App in Fragmente zu konvertieren, um mehrere Bildschirmgrößen zu unterstützen und die neuen ICS-Tabs korrekt zu verwenden. Zuvor habe ich die onWindowFocusChanged() -Methode verwendet und den folgenden Code darin ausgeführt - im Grunde hat dies eine dynamische Formatierung meines Layouts nach seiner Erstellung bewirkt.

%Vor%

Nun, da ich zu Fragments gewechselt bin und aus irgendeinem Grund meine paddingRightForTracker 0 zurückgibt. Ich bin vorher auf ein Problem gestoßen, bei dem ich versucht habe, Breite zu früh zu bekommen, daher bin ich früher zu onWindowFocusChanged gegangen, aber das ist nicht für Fragmente verfügbar. Das Merkwürdige ist, dass paddingLeftForTracker tatsächlich einen Wert ungleich null zurückgibt.

Wenn ich paddingRightForTracker manuell einstelle, findet die Änderung statt, sodass ich weiß, dass der Code ausgeführt wird. Kann einfach nicht herausfinden, warum meine getWidth 0 zurückgibt.

Jede Hilfe würde sehr geschätzt werden.

    
mattdonders 21.07.2012, 19:38
quelle

2 Antworten

20

Sie könnten es in onActivityCreated () versuchen. Sie würden also einen Verweis auf diese Ansichten in onCreateView speichern und dann in onActivityCreated () darauf zugreifen. Ich denke, die Ansicht ist nicht fertig erstellt, wenn Sie versuchen, darauf zuzugreifen, weshalb es keine Breite zurückgibt.

Ссылка

Ok, also habe ich einen anderen Weg gefunden, um die Breite zu bekommen. Auch ich kann weder onViewCreated, onCreateView noch onResume eine Tastenbreite zuweisen. Ich habe das gefunden, es versucht, und es gibt einen Wert zurück, also wird es vielleicht für dich funktionieren!

So erhalten Sie Höhe und Breite des Buttons

%Vor%

Zu Ihrer Information: Ich habe diesen Code in onResume ausgeführt, daher bin ich mir nicht ganz sicher, wo er sonst noch funktionieren könnte.

    
leenephi 21.07.2012, 19:57
quelle
0

Das funktioniert bei mir und es sieht sauberer aus (Ich benutze auch Lambda, aber es ist nicht erforderlich):

%Vor%     
TacoEater 15.02.2017 15:08
quelle