1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

layout_alignTop richtet falsch aus

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Panela, 13.09.2010.

  1. Panela, 13.09.2010 #1
    Panela

    Panela Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    13.09.2010
    Hallo zusammen,

    ich habe zwei TextViews nebeneinander in einem RelativeLayout. Der eine TV hat keine bestimmte Schriftgröße und der andere 60dip. Diese beiden TVs möchte ich an der oberen Kante ausgerichtet haben.

    Das Problem ist, dass "layout_alignTop" nur die äußeren Rahmen der TVs ausrichtet. Die Schriften sind dann trotzdem nicht auf gleicher Höhe. Anders als bei "layout_alignBaseline", dort steht der Text unten genau auf einer Linie.

    Kann man irgendwie auf diesen äußerem Rahmen Einfluss nehmen. Vielleicht mit padding wie bei CSS?

    Hier mein Beispielcode:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
      
    <TextView
    		android:id="@+id/Doppelpunkt"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:layout_centerHorizontal="true"
    		android:text=":"
    		android:textSize="60dip"
    		android:textStyle="bold"/>
      
    <TextView
    		android:id="@+id/PointsLeft"
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="19"
    		android:textSize="60dip"
    		android:textStyle="bold"
    		android:background="#ffffff"
    		android:layout_toLeftOf="@id/Doppelpunkt"/>
    		
    <TextView
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="1"
    		android:id="@+id/SetsLeft"
    		android:layout_toLeftOf="@id/PointsLeft" 
    		android:layout_alignTop="@id/PointsLeft"/>
    
    <TextView
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:text="0"
    		android:id="@+id/TimeoutLeft"
    		android:layout_toLeftOf="@id/PointsLeft"
    		android:layout_below="@id/SetsLeft"
    		android:layout_alignBaseline="@id/PointsLeft"/>
    
    </RelativeLayout>
    
    
    Man sieht ja auch, dass der Background einen größeren Bereich abdeckt, als die Zahl an sich. Diesen Bereich hätte ich gerne enger um die Zahl rum.

    MfG
    Panela
     
  2. Panela, 15.09.2010 #2
    Panela

    Panela Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    13.09.2010
    Hat denn keiner eine Idee?

    Und bin ich etwa der einzige, der dieses Problem hat?
     
  3. the_alien, 15.09.2010 #3
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Naja, es richtet nicht falsch aus, es tut genau das was es soll. Es schiebt den View ganz nach oben. Wenn die schriften auf einer Linie stehen sollen musst du alignBaseline nehmen, das bezieht sich ja auch direkt auf die Schrift.
    Ich verstehe auch gar nicht wie du die Schrift ausgerichtet haben möchtest. An der H-Linie, der k-Linie? Oder wo anders? Ich gehe nicht davon aus, dass das wirklich sauber möglich ist.
    Aber ja, padding gibt es.
     
  4. Panela, 15.09.2010 #4
    Panela

    Panela Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    13.09.2010
    Danke für Deine Antwort!

    Ich habe zwei TVs die links neben einem großen TV stehen. Das eine soll unten bündig mit dem großen TV auf einer Linie stehen und das andere TV oben bündig mit dem großen TV abschließen! Irgendwie bekomme ich das mit einem RelativeLayout nicht hin :(
     
  5. the_alien, 15.09.2010 #5
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Mach doch mal nen Screenshot wie es aussieht und was du anders haben möchtest.
     
  6. Panela, 15.09.2010 #6
    Panela

    Panela Threadstarter Neuer Benutzer

    Beiträge:
    4
    Erhaltene Danke:
    0
    Registriert seit:
    13.09.2010
    gute Idee!

    Wie man sieht, funktioniert es für die "0" wie gewollt, doch für die "1" nicht. Die oberen Kanten von "1" und "19" sollen auf einer Höhe sein. Der weiße Kasten um die "19" ist von der Eigenschaft background:white um den "Kasten" um die Zahl besser darzustellen.

    Anbei der Screenshot
     

    Anhänge:

  7. the_alien, 15.09.2010 #7
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Naja layoutBaseline ist ja auch das einzige was sich wirklich auf die Schrift bezieht, der Rest nicht. Von Daher ist es nicht verwunderlich.
    Versuch mal mit padding und marging zu spielen ob du es hinbekommst.
     

Diese Seite empfehlen