Ich versuche, die Ansicht für verschiedene Auflösungen mithilfe des Layouts und der Schwerkrafteigenschaften zu zentrieren, aber es funktioniert nicht. Gibt es eine Möglichkeit, die benutzerdefinierte Ansicht über verschiedene Auflösungen horizontal zu zentrieren?
Muss ich etwas mit der onMeasure-Methode machen?
Hier ist eines der Dinge, die ich gerade versuche, die Ansicht ist links vom Zentrum.
%Vor% Wenn Sie ein View
in einem Layout wie FrameLayout
haben, würden Sie View
s layout_gravity
auf center
setzen. Verwechseln Sie es nicht mit gravity
!
Es kann auch notwendig sein, onMeasure () zu überschreiben. Lesen Sie die Dokumentation , um zu entscheiden, ob Sie diese überschreiben müssen . Wenn Sie dies tun, beachten Sie, dass die Parameter mit View.MeasureSpec
codiert sind.
Sie sollten dies in Ihrer benutzerdefinierten View-Klasse implementieren
%Vor%
Darin sollten Sie Höhe und Breite für Ihre benutzerdefinierte Ansicht berechnen.
Wenn Sie Ihre benutzerdefinierte Ansicht im übergeordneten Layout zentralisieren müssen, stellen Sie Folgendes sicher:
UND / ODER
Zum Beispiel:
Jetzt können Sie als nächstes Ihre benutzerdefinierte Ansicht verwenden:
P.S. Sie sehen, dass android:layout_centerHorizontal="true"
keine Auswirkung hat. Der Grund dafür ist parent width in onMeasure anstatt die exakte Breite zu berechnen.