2016-10-01 2 views
0

Ich habe eine TextView, die ich einige drawable hinzufügen möchten mit setCompoundDrawablesWithIntrinsicBounds, das Problem ist, dass wenn ich dies tun, der Text bewegt und nicht ausgerichtet zu einem TextView in der Nähe, die nicht hat das Ziehbare.Text in TextView bewegt sich bei Verwendung von setCompoundDrawablesWithIntrinsicBounds

TextView tv1 = new TextView(); 
TextView tv2 = new TextView(); 

Drawable icon = getContext().getResources().getDrawable(
         R.drawable.arrow_right_down,null); 
       tv1.setPadding(ARROW_PADDING,0,0,0); 
       tv1.setCompoundDrawablesWithIntrinsicBounds(
         icon, null, null, null); 

tv1.setText("A"); 
tv2.setText("A"); 

Problem - A sind nicht ausgerichtet. Natürlich, wenn ich den Zeichensatz entferne, wird der Text ausgerichtet. Die TextViews befinden sich in der Nähe des anderen, so dass es wirklich leicht zu sehen ist.

Danke.

+0

Was hast du erwartet passieren? Das heißt, was versuchst du jetzt zu erreichen, dass du weißt, was passiert? –

+0

@MikeM. Ich möchte nur, dass die Texte ausgerichtet werden :) – Mojo

+0

Nun, Sie könnten ein transparentes 'Drawable' der gleichen Größe zum anderen hinzufügen. Oder Sie könnten die Breite von 'icon' erhalten und diese zum linken Padding des anderen hinzufügen. Oder Sie könnten den anderen 'TextView' um diese Breite nach links verschieben. Etc. Ich würde wahrscheinlich mit dem zweiten gehen. –

Antwort

0

Das Problem ist, dass es eine Auffüllung gibt und es ein Bild gibt. Wenn Sie sie berechnen und sie dann auf das Padding subtrahieren, wird es funktionieren.

nur hinzufügen:

int padding = IMG_SIZE+ARROW_PADDING; 
this.setCompoundDrawablePadding(-padding); 
Verwandte Themen