2016-07-25 7 views
0

Ich habe ein benutzerdefiniertes Halbrund Liner-Layout, in dem ich farbige Ansichten hinzufügen möchte, aber diese Ansichten nicht mit der benutzerdefinierten Form übereinstimmen (oder innerhalb der Grenzen des Liner-Layout bleiben)Ansichten innerhalb Layout anpassen benutzerdefinierte Form des Layouts

wenn ich eigene Form zu den Ansichten

zugewiesen

custom shape

wenn I zuweisen MATCH_PARENT die Ansichten

match parent

Ich möchte, dass die Ansichten das Innere des Liner-Layouts ausfüllen und dabei die Form beibehalten. Gibt es eine Möglichkeit, dies zu tun?

Antwort

0

Sie können keine benutzerdefinierte Form für eine Ansicht erstellen. Views sind immer rechteckig. Wenn Sie meinen, dass Sie über einen benutzerdefinierten Hintergrund verfügen, wird dadurch die Ansichtsgruppe nicht zu einer benutzerdefinierten Form oder das Layout der Ansichten innerhalb der Gruppe wird beeinflusst. Wenn Sie dies tun möchten, müssen Sie onLayout (und möglicherweise OnMeasure) überschreiben und die einzelnen Kinder mit den Grenzen, die Sie erwarten, zu gestalten. Seien Sie nicht überrascht, wenn Sie einige hässliche oder nicht-funktionale Ergebnisse wie diese Ansichten erhalten wurden nicht kreisförmig gemacht.

+0

Gibt es eine Möglichkeit, dass ich Cloud sicher stellen, dass die Ansicht nicht aus dem übergeordneten erstreckt? Ich habe versucht Android: ClipChildren = "True", aber das scheint nicht zu funktionieren. –

+0

Sie können nicht aus ihren Eltern erweitern. Aber ihr Elternteil ist ein Rechteck, egal welche Form Ihr Hintergrund hat. –

Verwandte Themen