Ich möchte die linke und rechte Seite einer Ansicht auf die Ränder der übergeordneten Ansicht beschränken und sie den zugewiesenen Bereich ausfüllen lassen. Wenn Sie jedoch die Breite entweder auf match_parent
oder einstellen wrap_content
, wird das gleiche Ergebnis erzielt.
Gibt es etwas Äquivalentes zu match_constraints (im Gegensatz zu match_parent und wrap_content)? Haben match_parent
und wrap_content
beeinflussen das Layout oder werden sie in der neuen Einschränkung Layout ignoriert?
Ich liebe dieses neue Layoutsystem für meine Lieblingsplattform!
match_parent
funktioniert das bei dir nicht?Antworten:
match_parent
wird nicht unterstützt. Mit0dp
können Sie sich Ihre Einschränkungen als "skalierbar" vorstellen, anstatt "zu füllen, was noch übrig ist".Auch
0dp
kann durch eine Position definiert werden, wobeimatch_parent
auf seine Eltern angewiesen für seine Position (x, y und Breite, Höhe)quelle
match_parent
ist nicht erlaubt. Sie können jedoch Breite und Höhe auf 0 dp setzen und entweder die oberen und unteren oder die linken und rechten Einschränkungen auf "übergeordnet" setzen.Wenn Sie beispielsweise die
match_parent
Einschränkung für die Breite des Elements festlegen möchten , können Sie dies folgendermaßen tun:quelle
Anscheinend
match_parent
ist:ConstraintLayout
ConstraintLayout
Wenn Sie also Ihre Ansichten benötigen, um als zu funktionieren
match_parent
, dann:ConstraintLayout
verwenden sollten0dp
match_parent
Beispiel:
quelle
match_parent
wird nicht unterstützt vonConstraintLayout
. Stellen Sie die Breite auf ein0dp
, damit sie den Einschränkungen entspricht.quelle
Aus dem offiziellen Dokument :
Wenn Sie also einen
MATCH_PARENT
Effekt erzielen möchten , können Sie dies tun:quelle
Sie können Ihren Adapter überprüfen.
Ich hatte das gleiche Problem wie Sie, als ich 1 verwendet habe. Sie können 2 versuchen.
quelle
Das Erstellen Ihrer Ansicht als match_parent ist nicht direkt möglich, aber wir können dies auf eine etwas andere Art und Weise tun. Vergessen Sie jedoch nicht, das Attribut Left und Right mit Start und End zu verwenden. Wenn Sie RTL-Unterstützung verwenden, wird dies benötigt.
quelle
Stellen Sie Breite oder Höhe (was auch immer Sie benötigen, um mit dem übergeordneten Element übereinzustimmen) auf 0dp ein und legen Sie die Ränder von links, rechts, oben und unten fest, um als übereinstimmendes übergeordnetes Element zu fungieren
quelle
im Bürodokument: https://developer.android.com/reference/android/support/constraint/ConstraintLayout
Wenn eine Dimension auf MATCH_CONSTRAINT festgelegt ist, besteht das Standardverhalten darin, dass die resultierende Größe den gesamten verfügbaren Speicherplatz einnimmt.
Verwendung von 0dp, was "MATCH_CONSTRAINT" entspricht
Wichtig: MATCH_PARENT wird für Widgets in einem ConstraintLayout nicht empfohlen. Ein ähnliches Verhalten kann mithilfe von MATCH_CONSTRAINT definiert werden, wobei die entsprechenden Einschränkungen für links / rechts oder oben / unten auf "übergeordnet" gesetzt werden.
quelle
Wenn Sie TextView in der Mitte des übergeordneten Elements möchten.
Ihr Hauptlayout ist Constraint Layout
quelle
Ich habe eine weitere Antwort gefunden, wenn es in der Bildlaufansicht ein Einschränkungslayout gibt, das wir dann einfügen müssen
zur Bildlaufansicht
und
im Einschränkungslayout
Beispiel:
quelle