2012-02-19 4 views
1

私はかなり単純なレイアウトをしています。テキストは折り返され、イメージと重ならないようにしてください。両方とも、コンテナの最終的な高さに対して垂直にセンタリングされます。プログラム型のRelativeLayout(CSSの浮動小数点数に似ています)

RelativeLayoutは、画像を親の右端に合わせ、テキストビューの右端を画像の左端に合わせて適切に見えました。ドキュメントでRelativeLayout.LEFT_OFのように聞こえるようにする必要があります。

ここに私のものがあります。テキストがイメージをオーバーレイします。私はtextviewが利用可能なスペースと同じ大きさである必要があります。

LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
lp.addRule(RelativeLayout.CENTER_VERTICAL); 

ImageView logo = new ImageView(context); 
logo.setImageResource(R.drawable.whatever); 
logo.setId(0); 
addView(logo, lp); 

lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.LEFT_OF, 0); 
lp.addRule(RelativeLayout.CENTER_VERTICAL); 

TextView header = new TextView(context); 
header.setText("Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet."); 
addView(header, lp); 

私は非常に長いことと言及に興味がないので、(XMLとは対照的に)プログラムでこれを行うことを好むでしょう。

洞察力があれば幸いです。 TYIA。

+0

は0 SETID(1231231)そのような何かにあなたのlogoIdを設定し、 'lp.addRule(RelativeLayout.LEFT_OF、logo.getId())のようにそれをしない;'することができますまた、あなたがそれらを必要とするならば、setMargins(...) –

+0

@SergeyBenner ha - 私はそれがうまくいっていると信じられません - このコメントを回答として投稿したいなら、それを受け入れるでしょう – momo

+0

私は答えとして設定しました。それが助けてくれてうれしい。 –

答えて

0

はそのような0 代わりに使用setId(1231231)またはID番号何かにあなたのlogoIdを設定し、あなたがそれらを必要とする場合にもsetMargins(...)を使用することができます lp.addRule(RelativeLayout.LEFT_OF, logo.getId());のようにそれをしないでください。


乾杯

関連する問題