1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. gfacek, 01.05.2010 #1
    gfacek

    gfacek Threadstarter Erfahrener Benutzer

    Hi,

    ich weiß, es gibt viele Quellen für sowas, aber irgendwie hat mir keine richtig weitergeholfen. Hab jetzt auch etwas damit gespielt, aber irgendwie scheint das ganze für mich etwas unlogisch...

    Ich hab das Beispiel von LinearView durchgespielt, da ist ein LinearLayout horizontal (drin 4 TextView) und ein LinearLayout vertikal (drin auch 4 TextView)...beides in einem LinearLayout vertikal.

    Also:

    LinearView(vertikal)
    ..LinearView(horizontal)
    ....Textview
    ....Textview
    ....Textview
    ....Textview
    ..LinearView(vertikal)
    ....Textview
    ....Textview
    ....Textview
    ....Textview

    Wenn ich jetzt die weight eines TextView in dem inneren horizontalen vergrößere, nimmt dieses eine MEHR platz ein. Beim inneren vertikalen auch.
    Wenn ich jetzt das weight vom horizontalen LinearView ändere, nimmt dieser WENIGER Platz ein.

    Wenns so ist, ists halt so...aber ich versteh die Logik dahinter nicht. Kann auch daran liegen, das ich noch nicht ganz so fit gerade bin (is ja noch früh ;-))

    Gruß Töbi
     
  2. Mort, 02.05.2010 #2
    Mort

    Mort Android-Lexikon

    Naja, was mehr wiegt, nimmt meist auch mehr Platz ein - verschiedene spezifische Gewichte pro Element nehme ich mal nicht an... ;)

    Im Prinzip ist's relativ einfach: Android verteilt die "gewichteten" Elemente mit "wrap_content"-Größe so gut es geht prozentual am "Gesamtgewicht". Ob du nun 70+30 oder 7+3 nimmst, ist dabei egal. Es wird aber versucht, wenigstens den Inhalt darzustellen, dadurch kanns zu Verschiebungen kommen. Wenn also zwei Buttons 50:50 nebeneinander erscheinen sollen, einer aber 'ne sehr lange Beschriftung hat, wird der vermutlich größer.
     
  3. mabraham, 27.09.2010 #3
    mabraham

    mabraham Neuer Benutzer

    Hallo,

    ich schließe mich der Frage an.

    Ausgehen möchte ich vom Beispiel zur LinearView, auf das sich auch *gfacek* bezieht
    Linear Layout | Android Developers

    Verstellt man layout_weight der LinearViews zweiter Ordnung, also:
    Code:
    [..]
      <LinearLayout
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_weight="1">
    [..]
      <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2">
    [..]
    
    So nimmt das zweite LinearLayout nur noch ein drittel des vertikal zur Verfügung stehenden Platzes ein, den Rest nimmt das andere LinearLayout ein. Man erwartet ein umgekehrtes Verhältnis.

    Ich habe dies im Emulator mit Android 2.2 getestet.

    Wo liegt das Problem?

    Martin
     
    Zuletzt bearbeitet: 27.09.2010
  4. BenOtto, 27.09.2010 #4
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Bei mir hat das erste 1/3 und das zweite 2/3.
     
  5. Mort, 27.09.2010 #5
    Mort

    Mort Android-Lexikon

    Wenn da wirklich android:layout_height="fill_parent" verwendet wurde, ist's schon fast ein Wunder, dass das zweite Layout überhaupt zu sehen war. Probiert's doch mal mit android:layout_height="wrap_content".
    Aber wie schon gesagt: Android nimmt die "weights" scheinbar eher als "Empfehlung", Abweichungen vom erwarteten Ergebnis sind durchaus üblich...
     
    mabraham gefällt das.
  6. mabraham, 27.09.2010 #6
    mabraham

    mabraham Neuer Benutzer

    Danke Mort,

    über die Angabe
    Code:
    android:layout_height="fill_parent" 
    
    habe ich mich auch schon gewundert. Aber als Einsteiger ist man ja gottesfürchtig, besonders, wenn das Tutorial offiziell ist. Nachdem ich die Einstellung in
    Code:
    android:layout_height="wrap_content" 
    
    geändert habe, läuft alles wie es soll.

    Danke für die schnelle unkomplizierte Hilfe.

    Martin
     
    Zuletzt bearbeitet: 27.09.2010
  7. BenOtto, 27.09.2010 #7
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Es macht schon Sinn, dass da fill_parent steht. Ohne layout_weight sieht man dann nur die erste View und mit beide im Verhältnis. Bei wrap_content kann es passieren, dass die Breite beider Kindelemente zusammen kleiner ist, als die des LinearLayouts.
     
  8. Mort, 28.09.2010 #8
    Mort

    Mort Android-Lexikon

    Das gilt natürlich für's Elternelement - wenn das nur "wrap_content" hat, gibt's nichts mit "Gewicht" aufzufüllen.

    "fill_parent" funktioniert allerdings teilweise auch für die "dicken Kinder". Wo's klappt, oft sogar besser (gleichmäßiger) als "wrap_content". Allzu oft kommt's aber vor, dass dann Kinder verschwinden oder nur teilweise dargestellt werden. Halbwegs zuverlässig scheint's nur zu sein, wenn alle Kinder gleichschwer sind.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[OFFEN] Klick auf Marker soll ein zweites kleineres Layout anzeigen, Map soll trotzdem noch scrollbar (verwendbar) sein Android App Entwicklung 04.04.2017
[ERLEDIGT] Layout (Design) erkennt style nicht? Android App Entwicklung 13.03.2017
Verständnisprobleme beim Layout Android App Entwicklung 21.02.2017
Layout-Probleme auf verschiedenen Geräten Android App Entwicklung 19.01.2017
Text View erzeugt rendering Problem Android App Entwicklung 18.11.2016

Users found this page by searching for:

  1. android layout weight

    ,
  2. android app weight

    ,
  3. layout_weight bedeutung androuid

    ,
  4. android:layout_weight,
  5. Android using laout weight,
  6. weight android layout,
  7. android studio textview layout:weight beispiel,
  8. linearlayout weight,
  9. android layout_weight,
  10. layout erklärung einfach,
  11. android api erklärungen,
  12. android layout gewichte
Du betrachtest das Thema "Erklärung von Layout "weight"?!" im Forum "Android App Entwicklung",