GridLayout-Spalte überschreitet ihre Grenzen

8

Ich versuche ein gitterähnliches Formular zu erstellen, ähnlich wie das Beispiel im offiziellen Android Developers Blog.

Hier ist mein Layout:

%Vor%

Meine linke Spalte (statischer Text, rechtsbündig) funktioniert einwandfrei. Es richtet den Text nach rechts aus, und die Breite hängt von der breitesten Zeile ab.

Die rechte Spalte scheint jedoch weit außerhalb der Grenzen von GridLayout zu liegen.

In diesem Bild ist die blaue Box die Grenze des GridLayout. Sie können das Problem bereits in der grünen Leiste oben sehen. Die rechte Seite soll an den Grenzen des GridLayout stehen (wie die linke Seite), aber aus irgendeinem Grund geht es weit darüber hinaus.

Das blaue Feld in diesem Bild ist die Grenze des EditText (es ist auf wrap_content gesetzt). Die aqua-farbige Box ist jedoch die Grenze, in der sie sich ausdehnen darf. Wenn ich viele Zeichen in den EditText eintippe, geht es über die GridLayout-Grenzen und sogar über den Rand des Telefonbildschirms hinaus!

Ist das ein Fehler in GridLayout? Oder vermisse ich etwas?

    
Steven Schoen 24.03.2015, 01:33
quelle

4 Antworten

6

Das ist normales Verhalten von GridLayout .

Glücklicherweise gibt es eine neue Version von GridLayout , die mit API 21 hinzugefügt wurde. Dank dieser Tatsache können Sie GridLayout Kinder nach entweder Breite oder Höhe anpassen seine Ausrichtung.

Details finden Sie in der Dokumentation besonders bei Klassenübersicht - & gt; Überschüssige Speicherplatzverteilung . Sie können dort Informationen darüber finden, wie GridLayout in der von Ihnen gewünschten Weise verwendet werden kann.

Tipp:

Vergessen Sie nicht, dass Sie zur Verwendung von GridLayout verwenden müssen Fügen Sie es als Support-Bibliothek hinzu und in xml s sollten Sie Folgendes verwenden:

%Vor%

statt

%Vor%     
paulina_glab 24.03.2015 06:52
quelle
2

Ich fand diese Antwort , um hilfreich zu sein. Auch die Antwort von paulina_glab auf <android.support.v7.widget.GridLayout statt nur auf <GridLayout - danke!

Insbesondere diese Attribute für jede Zelle:

%Vor%

Ich hoffe, es hilft.

    
marienke 18.05.2017 15:08
quelle
1

Sie können den Bearbeitungstext auf eine einzelne Zeile beschränken.

%Vor%     
RBK 24.03.2015 03:59
quelle
0

Definitiv seltsam. Was passiert, wenn Sie die Breite des EditText auf "match_parent" anstatt auf "wrap_content" beschränken (was seine horizontale Breite innerhalb der Rasterzelle einschränken sollte)?

d. h.

%Vor%

oder, alternativ, geben Sie Ihrem EditText einen rechten Rand, um zu versuchen, diesen rechten Rand ein wenig zu drücken? z.B.

%Vor%

und sehen, ob das einen Unterschied macht?

    
wislon 24.03.2015 04:30
quelle