使用setCompoundDrawablesWithIntrinsicBounds时,TextView中的文本会移动

时间:2016-10-01 16:48:06

标签: android textview

我有一个TextView,我想使用setCompoundDrawablesWithIntrinsicBounds在其中添加一些drawable,问题是,当我这样做时,文本移动而不是对齐它附近的TextView,它没有drawable。

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未对齐。当然,如果我删除了drawable文本是对齐的。 TextViews位于另一个附近,因此很容易看到它。

感谢。

1 个答案:

答案 0 :(得分:0)

问题是有填充并且有图像。 如果你计算它们然后将它们减去填充 - 它就会起作用。

只需添加:

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