2016-10-01 2 views
0

У меня есть TextView, который я хочу добавить в него с помощью setCompoundDrawablesWithIntrinsicBounds, проблема в том, что когда я это делаю, текст перемещается и не выравнивается с TextView рядом с ним, у которого нет возможно.Текст внутри движка TextView при использовании 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"); 

проблема - A не выровнены. Конечно, если я удаляю выталкиваемый текст, выравнивается. TextViews расположены рядом друг с другом, поэтому его очень легко увидеть.

Спасибо.

+0

Что вы ожидаете произойдет? То есть, что вы пытаетесь сделать сейчас, когда знаете, что происходит? –

+0

@MikeM. Я просто хочу, чтобы тексты были прикомандированы :) – Mojo

+0

Ну, вы могли бы добавить прозрачный «Drawable» того же размера в другой. Или вы можете получить ширину 'icon', и добавить это в левое дополнение другого. Или вы можете смещать влево другой «TextView» по этой ширине. И т. Д. Я бы, наверное, пошел со вторым. –

ответ

0

Проблема в том, что есть прокладка и есть изображение. Если вы их вычислите, а затем выложите их на прокладку - это сработает.

просто добавить:

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