私はかなり単純なレイアウトをしています。テキストは折り返され、イメージと重ならないようにしてください。両方とも、コンテナの最終的な高さに対して垂直にセンタリングされます。プログラム型の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 SETID(1231231)そのような何かにあなたのlogoIdを設定し、 'lp.addRule(RelativeLayout.LEFT_OF、logo.getId())のようにそれをしない;'することができますまた、あなたがそれらを必要とするならば、setMargins(...) –
@SergeyBenner ha - 私はそれがうまくいっていると信じられません - このコメントを回答として投稿したいなら、それを受け入れるでしょう – momo
私は答えとして設定しました。それが助けてくれてうれしい。 –