android:layout_height="0dip"

M

mrwerner

Fortgeschrittenes Mitglied
22
Hallo,

Ich habe jetzt einige Layoutbeispiele gesehen wo entweder android:layout_height="0dip" oder android:layout_width="0dip" gesetzt war. Wie wird dieses von Android interpretiert? Gibt es dazu eine Dokumentation. Ich habe in der SDK Referenz nur fill_parent und wrap_content gefunden.

Hier noch ein Beispiel wo so etwas verwendet wird:
Layout Tricks: Creating Efficient Layouts | Android Developers
 
dabei gibt es ein layout_weight="xx" dann
 
Hallo,

Danke für deine Antwort. Allerdings habe ich nicht wirklich verstanden was du meinst. Könntest du das ganze etwas ausführlicher erklären? ;)
 
naja ganz einfach

ich habe zb 2 buttons. sage einfach jeweils layout_width="0dip" und layout_weight="1"

dann teilen sie sich den platz genau auf

hat zb button 1 layout_weight="2" und button2 layout_weight="1"

dann teilen sie sich den platz 2:1 auf.

usw
 
Und wo ist der Unteschied zu "wrap_content"? Was bedetutet android:layout_height="0dip"? Heißt es, dass es so knapp wie möglich aber so groß wie notwendig sein soll? Genau das wäre nämlich das was "wrap_content" macht. Irgendwo muss dieses Verhalten ja dokumentiert sein.
 
Probier's doch einfach mit nem Button aus und schau dir an was für Veränderungen du am Button feststellen kannst...

<Button
android:id="@+id/btn_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send" />

Schau dir das Ergebnis an und danach änderst du den Button mal ab auf:

<Button
android:id="@+id/btn_send"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />

Schau dir das Ergebnis an und frag dich was jetzt anders aussieht als vorher ;)

Und dann änderst den Button nochmal ab:

<Button
android:id="@+id/btn_send"
android:layout_width="50dip"
android:layout_height="50dip"
android:text="Send" />



Danach sollten dir die Unterschiede eigentlich klar sein.

Wenn nicht, schau dir das hier mal an: bei 8. Use DIP instead of PX
ui
10 Tips for Developing Android Apps | Around the Hill

Und wenn dir das noch immer nicht hilft, dann machst den Button noch mit px statt dip, legst dir zwei Emulatoren mit unterschiedlicher Auflösung an, und schau dir dann mal die Ergebnisse an.

Achja, und mach den Button zum Schluss nochmal mit 0dip bei height und width...dann müsstest du feststellen, dass vom Button nicht mehr viel zu sehen ist ;)
 
Hallo,

@TheUsualSuspect:
Danke für deine Antwort. Das alles ist mir schon klar. Ich weiß, was wrap_content und fill_parent macht. Mir ist auch klar was passiert wenn man einen fixen Wert angibt der größer 0 ist. Auch der Unterschied zwischen px und dip ist mir klar. Allerdings wurde immer noch nicht erklärt was passiert wenn ein Layout die Höhe oder Breite von 0 hat und dann Views zu diesem Layout hinzugefügt werden. Ich habe es auch schon ausprobiert. Es ist etwas kleiner als wrap_content. Aber ich würde wissen wie das Verhalten definiert ist.
 
naja wrap_content heißt, dass der button so groß ist, wie sein inhalt

wenn ich einen button mit dem text "asdfasdfjafjöalsdfjaslkfjasdlkfj" hab ist der wesentlich größer als ein button mit "asdf"

bei beiden buttons ein layout_weight="1" macht sie gleich breit
 
Ja schön! Mit layout_weight="1" kann ich einstellen wie sich die Elemente den Platz aufteilen. Das erklärt aber immer noch nicht was android:layout_height="0dip" macht. Streng genommen müsste es ja eine View/Layout mit 0 Höhe ergeben. Das tut es aber nicht. Also was ist das definierte Verhalten für Höhe und Breite 0?
 
wenn du layout height="0" hast und kein layout_weight müsste es eine view mit 0 höhe ergeben

ob das zulässig ist, weiß ich nicht
 
OK! Dankeschön!
Schön bzw. sauber finde ich die ganze Sache nicht, aber ich muss es ja nicht so machen. ;)
 
Zurück
Oben Unten