Hur får jag till denna layout?

Diskussion i 'Frågor, support och diskussion' startad av Dalla, 3 jan 2011.

  1. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Tjena

    Jag behöver lite hjälp med att få till en layout för ett godtyckligt antal knappar i en activity. Det jag vill uppnå är någonting åt detta håll (jag har klippt och klistrat i denna bild).

    [​IMG]

    Men det enda jag lyckas få är detta:

    [​IMG]

    Hur gör jag för att få till samma utseende som på första bilden? Jag vill att detta skall fungera även med fyra, fem, sex knappar osv. Dvs jag vill inte använda enbart top, center och bottom för att det skulle fungera med tre knappar.

    Koden jag använder då ser ut såhär:

    ?xml version="1.0" encoding="utf-8"?>
    LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:layout_weight="1"
    />
    Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:layout_weight="1"
    />
    Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    android:layout_weight="1"
    />
    /LinearLayout>
     
  2. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 448
    Mottagna gillanden:
    2 199

    MINA ENHETER

    Det enklaste är väl en fix höjd på knapparna i "dp"? Vill du ha flera knappar i rad är nog en scrollview (för att olika skärmar ska kunna nå alla knappar om det är måånga) och fast storlek kanske något.

    android:layout_margin kanske är det du vill ha antar jag.
    Så ex:
    android:layout_marginBottom="20dp" på varje knapp. Borde väl göra lite utrymme mellan knapparna och så att knapparna inte blir så tjocka.
     
    Dalla gillar detta.
  3. foobar17

    foobar17 Kid Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    56
    Mottagna gillanden:
    11

    MINA ENHETER

    Prova RelativeLayout:
    Sätt ett ID på varje element, så de kan refereras.
    Placera ett element under det "övre" genom android:layout_below="idOfAbove".
    Lägg till en övre marginal android:layout_marginTop="10dp", på varje eller element utom det översta.
    Kan vara en ide att wrappa alla element i en ScrollView.
     
  4. foobar17

    foobar17 Kid Droid Medlem

    Blev medlem:
    12 jun 2009
    Inlägg:
    56
    Mottagna gillanden:
    11

    MINA ENHETER

  5. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Ja det kanske är så enkelt som att köra med fast höjd. Ska testa det. Annars går jag vidare på RelativeLayout. Tack till er båda!
     
  6. wulax

    wulax Kid Droid Medlem

    Blev medlem:
    7 jul 2010
    Inlägg:
    61
    Mottagna gillanden:
    7

    MINA ENHETER

    Om du kör med fast höjd och/eller marginaler kommer du nog få problem förr eller senare med att köra appen i olika upplösningar. Du kan givetvis använda Scrollview ifall du vill, men om jag förstår din fråga rätt vill du ha allt i en LinearLayout?

    Ta bort weight=1 från Buttons och lägg till tomma LinearLayouts med höjd och bredd som "fill_parent" och ge dem weight=1. Lägg dem mellan Buttons. Då kan du lägga till så många Buttons som får plats på skärmen och alltid få dem jämnt fördelade över ytan.

    Exempel:
    Kod:
    ?xml version="1.0" encoding="utf-8"?>
    LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
      TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
      LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>
      Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
      LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>
      Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
      LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>
      Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
      LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"/>
    /LinearLayout>
    [​IMG]
     
    Dalla gillar detta.
  7. Dalla

    Dalla Youth Droid Medlem

    Blev medlem:
    1 maj 2010
    Inlägg:
    145
    Mottagna gillanden:
    3

    MINA ENHETER

    Jo jag missade nog den "lilla" detaljen att knapparna skulle fördela sig jämt oavsett upplösning. Din lösning fungerar klockrent, det var EXAKT så jag ville ha det! Tack :-)