DialogFragment-Größe (Breite) ignoriert

8

Ich benutze ein DialogFragment und finde, dass die Breite immer immer Vollbild wird, wenn ich ein inneres LinearLayouts Layout_width = match_parent mache, egal wie viele Einschränkungen ich erzwinge, indem ich die layout_width und minWidth der Elternansicht festlege, oder Einstellen der Layout-Dimensionen in CreateView ()

dialog.xml

%Vor%

Dialog.java

%Vor%

Die einzige Möglichkeit, dies zu erreichen, besteht darin, das innere LinearLayout layout_width="@ dimen / dialog_width

" zu setzen

gehackt dialog.xml

%Vor%

Was gut funktioniert, hat aber Konsequenzen für andere Teile des Dialogs. Ist das ein Fehler in Android?

    
nathanielwolf 29.11.2012, 18:32
quelle

2 Antworten

2

Ich habe keine Dokumentation dazu gesehen, aber ich habe irgendwo gelesen (wahrscheinlich auf SO), dass die Parameter layout_width und layout_height des Root-Layouts beim Erstellen des Dialogs mit 'wrap_content' überschrieben werden.

Ich bin mir nicht sicher, ob das tatsächlich stimmt oder nicht, aber das Layout-Verhalten, das ich gesehen habe, deutet darauf hin, dass es wahr ist. Wie auch immer, ich habe meine Dialoge richtig gestaltet, indem ich angenommen habe, dass dies der Fall ist.

Vielleicht möchten Sie wrap_content auch auf Ihren inneren Layouts ausprobieren, wo immer es möglich ist. Hardcoded Breiten neigen dazu, über mehrere Geräte nicht gut zu funktionieren.

    
GreyBeardedGeek 18.06.2013 01:46
quelle
-2

Ersetzen Sie den Code mit diesem

%Vor%

Benutze nur ein LinearLayout und lege alle Dinge hinein

    
Kirit Vaghela 18.06.2013 04:40
quelle