2016-03-31 7 views
0

Ich mache die Listenansicht, in der ich eine Bildansicht habe, und zu ihrer Linken muss ich die Textansicht ausrichten, die Text in der Mitte davon haben sollte. Ich habe die Schwerkraft eingestellt, aber es sieht nur gut aus im Design, aber wenn ich meine App starte und Daten in der Listenansicht abgerufen werden, dann wird der Text unten gesetzt.Wie man Text in der Mitte der Textansicht einstellt

Ich werde Ihnen zeigen, was ich mit this.But bedeuten zuerst lassen Sie mich Ihnen zeigen, wie ich dieses

<RelativeLayout 
       android:id="@+id/block_address" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:orientation="horizontal"> 

       <ImageView 
        android:id="@+id/iv_address" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/pin" /> 

       <TextView 
        android:id="@+id/row_address" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_alignBaseline="@+id/iv_address" 
        android:layout_alignBottom="@+id/iv_address" 
        android:layout_marginLeft="3dp" 
        android:layout_toRightOf="@+id/iv_address" 
        android:gravity="center|center_vertical" 
        android:text="Address Goes here" 
        android:textColor="#AAAAAA" /> 


      </RelativeLayout> 

auszurichten tue und das ist, wie ich dieses

enter image description here

bin immer

Und das ist, was ich es

enter image description here

sein wollen

Wie Sie auf dem zweiten Bild sehen können, möchte ich diese Art der Anpassung. und in der Design-Vorschau zeigt es mir das Design, so wie es erwartet wird. Aber wenn ich die App benutze, zeigt sie mir nur Text, wie ich es in Bild 1 gezeigt habe.

Bitte sagen Sie mir, was ich falsch mache und wie man dies einschnürt, um nicht aus der Alignment zu kommen.

+5

Sie können sowohl die RelativeLayout und der Image loszuwerden. Das Bild kann direkt in der Textansicht als ** Compound Drawable ** enthalten sein. Wenn Sie für Aufführungen sorgen. –

+0

was meinst du damit> –

+0

flache Layouts besser. –

Antwort

2

Sie können eine ziehbar Symbol

<TextView 
    android:drawableLeft="@drawable/..."/> 
+0

haben Sie die Ausrichtung der mittleren Ausrichtung vergessen. –

+0

lol ich weiß. Ich zeige nur das „Eigentum“ für eine ziehbar Symbol .... – FunkyMan

+0

die Eigenschaft habe ich –

2

Ersetzen Sie Ihre Textview mit diesem Zusatz:

<TextView 
       android:id="@+id/row_address" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_alignTop="@+id/iv_address" 
       android:layout_alignBottom="@+id/iv_address" 
       android:layout_marginLeft="3dp" 
       android:layout_toRightOf="@+id/iv_address" 
       android:gravity="center|center_vertical" 
       android:text="Address Goes here" 
       android:textColor="#AAAAAA" /> 
5

ersetzen gesamten Code mit:

<TextView 
         android:id="@+id/row_address" 
         android:layout_width="wrap_content" 
         android:layout_height="match_parent" 
         android:android:drawableLeft="@drawable/pin" 
         android:drawablePadding="10dp" 
         android:gravity="center|center_vertical" 
         android:text="Address Goes here" 
         android:textColor="#AAAAAA" /> 
-1

Versuchen Linearlayout statt RelativeLayout. weil es leicht auszurichten ist.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
android:id="@+id/block_address" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_marginTop="2dp" 
android:orientation="horizontal" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<ImageView 
    android:id="@+id/iv_address" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/logout" /> 

<TextView 
    android:id="@+id/row_address" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="3dp" 
    android:gravity="center|center_vertical" 
    android:text="Address Goes here" 
    android:textColor="#AAAAAA" /> 

</LinearLayout> 
0

Verwenden Linearlayout Statt RelativeLayout als so etwas wie dieses acheiveing ​​in Linearlayout ist recht einfach

<LinearLayout android:layout_width="match_parent" 
       android:layout_height="150dp" 
       android:orientation="horizontal"> 
    <ImageView 
     android:id="@+id/iv_address" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="3" 
     android:src="@drawable/andro"/> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="7" 
     android:text="Hello World" 
     android:gravity="center"/> 
</LinearLayout>