2016-10-01 5 views
0

setCompoundDrawablesWithIntrinsicBoundsを使用して、いくつかのdrawableを追加したいTextViewがあります。問題が発生すると、テキストが移動し、それ以外のTextViewドロアブルsetCompoundDrawablesWithIntrinsicBoundsを使用すると、TextView内部のテキストが移動する

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); 
関連する問題