1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  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 bedankt sich.
  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.
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. android layout weight

    ,
  2. layout_weight bedeutung androuid

    ,
  3. android:layout_weight

    ,
  4. Android using laout weight,
  5. weight android layout,
  6. android studio textview layout:weight beispiel,
  7. linearlayout weight,
  8. android layout_weight,
  9. layout erklärung einfach,
  10. android api erklärungen,
  11. android layout gewichte