1
我有一个非常简单的布局 - 右侧的图像和左侧的文本。文字应该包裹并且不重叠图像。两者都垂直居中到容器的最终高度。编程RelativeLayout(类似于CSS float right)
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。
不要你logoId设置为0 SETID(1231231),类似的东西和不喜欢它'lp.addRule(RelativeLayout.LEFT_OF,logo.getId());'你也可以setMargins(...)如果你需要他们 – 2012-02-19 02:01:57
@SergeyBenner哈 - 我不能相信工作 - 如果你想发表评论作为答案,我会接受它 – momo 2012-02-19 03:08:07
我已经将其设置为答案。很高兴帮助。 – 2012-02-19 16:15:07