Dies ist mein Code mit FrameLayout
:
Die ImageView zeigt gut.
Jetzt habe ich ein benutzerdefiniertes Layout von FrameLayout, z. MyFrameLayout.
In MyFrameLayout möchte ich, dass die Höhe des Layouts immer die Hälfte der Breite beträgt, also lautet mein Code:
%Vor%Dann benutze es in xml:
%Vor%Aber jetzt ist die innere ImageView verschwunden.
Ich denke, ich implementiere onMeasure
oder onLayout
nicht korrekt. Ich denke, ich muss auch die Kinderansichten anpassen. Aber ich weiß nicht, was ich jetzt tun soll.
AKTUALISIEREN
Nach dem Kommentar von TheDimasig habe ich gerade meinen Code überprüft und meine Frage aktualisiert. Danke
Sie sehen keine untergeordneten Ansichten, da Sie die Methode onMeasure
nicht korrekt überschreiben. Sie könnten die Superklasse die Logik implementieren lassen (so dass die untergeordneten Ansichten angezeigt werden) und dann die berechnete Breite und Höhe für MyFrameLayout
:
Wenn das von Ihnen gepostete Layout nicht Ihr komplettes Layout ist, funktioniert mein Code möglicherweise nicht.
Ich nehme an, dass Sie in Ihrer Methode onMeasure
vergessen haben, OnMeasure für alle untergeordneten Ansichten, einschließlich Ihrer ImageView, aufzurufen. Sie müssen durch alle Ihre Kind-Ansichten gehen und auf sie etwas wie folgt aufrufen:
Tags und Links android android-layout