RelativeLayout

Discussion in 'Frågor, support och diskussion' started by mrmozart, Jan 5, 2010.

  1. mrmozart

    mrmozart Teen Droid Medlem

    Joined:
    Jul 9, 2009
    Messages:
    279
    Likes Received:
    1

    MINA ENHETER

    Hej hej,
    Någon som kan hjälpa mig med lite RelativeLayout i kodform? Det jag försöker få till är en layout enligt följande:

    [​IMG]

    1 - Button
    3 - TextView
    2 - Button

    Knapparna är inga problem, men texten i mitten hamnar fel. Finns något som heter RelativeLayout.RIGHT_OF som jag försökt med, men lyckas inte med det heller. Någon som har några tips?
     
  2. juanez

    juanez Teen Droid Medlem

    Joined:
    Dec 17, 2009
    Messages:
    327
    Likes Received:
    2

    MINA ENHETER

  3. mrmozart

    mrmozart Teen Droid Medlem

    Joined:
    Jul 9, 2009
    Messages:
    279
    Likes Received:
    1

    MINA ENHETER

    Hej hej,
    Tack för tipsen! Jag måste ju inte använda en RelativeLayout om det finns bättre lösningar. Dock tycker jag inte det ser ut som att dina exempel löser mitt problem på det sättet jag önskade (?):

    Första länken visar kod som hårt kodar in bredden på objektet - jag vill att mitt program ska skala (i princip) oavsett skärmstorlek.

    I den andra länken tror jag alla kolumner är lika breda.

    Jag vill alltså ha en fix bredd på knapparna och sedan låta ytan mellan dem (3) skala beroende på hur bred den aktuella skärmen är.
     
  4. juanez

    juanez Teen Droid Medlem

    Joined:
    Dec 17, 2009
    Messages:
    327
    Likes Received:
    2

    MINA ENHETER

    Klistra in koden / xml layouten du använder för att åstadkomma ovanstående.
     
  5. yrara

    yrara Teen Droid Medlem

    Joined:
    Sep 30, 2009
    Messages:
    428
    Likes Received:
    8

    MINA ENHETER

    Det smidigaste är antagligen att använda en LinearLayout som tar upp hela bredden, och i den placera en Button, en TextView och en Button till, efter varandra. Knapparna bör ha sin bredd satt till wrap_content, texten sin till fill_parent, och alla tre en layout_weight satt till 1 (knapparna ska ju ändå inte ta mer plats än de behöver, så resten borde lämnas till texten)
     
  6. PoPEye

    PoPEye Kid Droid Medlem

    Joined:
    Jan 4, 2010
    Messages:
    37
    Likes Received:
    0

    MINA ENHETER

    En layout xml hade hjälpt. Vilket SDK jobbar du mot? Har sett att de ändrat lite på sistonde ang relativ layout..
     
  7. mrmozart

    mrmozart Teen Droid Medlem

    Joined:
    Jul 9, 2009
    Messages:
    279
    Likes Received:
    1

    MINA ENHETER

    SDK:n är 2.01 och jag måste erkänna att jag körde det här helt kodbaserat utan XML :)

    Ska testa LinearLayout-tipset från yrara, men jag undrar om verkligen den andra knappen trycks ut till höger?
     
  8. yrara

    yrara Teen Droid Medlem

    Joined:
    Sep 30, 2009
    Messages:
    428
    Likes Received:
    8

    MINA ENHETER

    Jag kör 1.6 själv, och är inte helt införstådd i skillnaderna, men det är i alla fall så weight är tänkt att fungera:

    Common Layout Objects (under LinearLayout):

     
  9. sandos

    sandos Adult Droid Medlem

    Joined:
    May 27, 2009
    Messages:
    715
    Likes Received:
    8

    MINA ENHETER

    Min erfarenhet av weight är dock allt annat än bra. Kan iofs ha varit på 1.5, men minns att jag bråttades med denna iaf.
     
  10. mrmozart

    mrmozart Teen Droid Medlem

    Joined:
    Jul 9, 2009
    Messages:
    279
    Likes Received:
    1

    MINA ENHETER

    Nu har jag löst problemet. Det här fungerar på 2.01 iaf:

    * Knappar 1 & 2 har fix width 75, weight 0
    * TextView 3 har width FILL_PARENT, weight 1

    Tack för alla förslag och tips!
     
  11. johan.walles@gmail.com

    [email protected] Kid Droid Medlem

    Joined:
    Nov 24, 2009
    Messages:
    38
    Likes Received:
    0

    MINA ENHETER

    Varför fix bredd på knapparna?

    Om man kör med en telefon med andra typsnitt än du har kommer de där 75:orna inte stämma längre.
     
  12. mrmozart

    mrmozart Teen Droid Medlem

    Joined:
    Jul 9, 2009
    Messages:
    279
    Likes Received:
    1

    MINA ENHETER

    hm, om jag inte hade en fix bredd så blev texten ("<<<" resp ">>>") utsmetad på flera rader. Finns det något annat sätt att lösa det?
     
  13. johan.walles@gmail.com

    [email protected] Kid Droid Medlem

    Joined:
    Nov 24, 2009
    Messages:
    38
    Likes Received:
    0

    MINA ENHETER

    Pass... I allmänhet tycker jag LinearLayout fungerar väldigt bra, men i ett fall gav jag upp och gjorde en egen layout där jag ärvde från LinearLayout:

    http://bazaar.launchpad.net/~walles...chpad/sl/resultsdisplay/TwoPlusOneLayout.java

    Fixa värden i layouter *är* problematiska, men det betyder inte nödvändigtvis att det alltid finns ett bättre sätt tyvärr.