layout_alignTop richtet falsch aus

P

Panela

Neues Mitglied
0
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
 
Hat denn keiner eine Idee?

Und bin ich etwa der einzige, der dieses Problem hat?
 
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.
 
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 :(
 
Mach doch mal nen Screenshot wie es aussieht und was du anders haben möchtest.
 
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

  • screenshot.jpg
    screenshot.jpg
    1,9 KB · Aufrufe: 362
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.
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
220
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.015
Robby1950
R
B
Antworten
6
Aufrufe
1.051
jogimuc
J
Zurück
Oben Unten