2012-11-26 106 views
0

我有relativelayout作为容器,我有设置文本和图像,接下来我addView()这relativelayout两次到一个线性布局,一切都很好,但我不能分开两个相关布局他们是一直坚持一个到另一个,这里是代码:以编程方式显示版本

的LinearLayout

layout = new LinearLayout(context); 
LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, 
LinearLayout.LayoutParams.MATCH_PARENT); 

ll.setMargins(5, 5, 5, 5); 
layout.setOrientation(LinearLayout.HORIZONTAL); 
layout.setPadding(5, 5, 5, 5); 
layout.setLayoutParams(ll); 
layout.setId(i); 

layout.addView(m1.box); 
layout.addView(m2.box); 

其中m1和m2是: 的RelativeLayout:

box = new RelativeLayout(context); 

RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, 
RelativeLayout.LayoutParams.MATCH_PARENT); 

rl.setMargins(5, 5, 5, 5); 
rl.width = 125; 
rl.height = 125; 

box.setId(i); 
box.setPadding(5, 5, 5, 5); 
box.setBackgroundColor(color1); 
box.setLayoutParams(rl); 
//add some text and image 

如何将m1与m2分开?现在他们看起来像OO我需要添加空间O_O。

回答

1

首先,这不起作用,因为父布局是LinearLayout,您定义的LayoutParamsRelativeLayoutLayoutParams应该匹配父类而不是孩子的类型,因为它们告诉父母如何以及在何处放置孩子。

二,用addView(View v, LayoutParams lp)而不是addView(View v)来防止这种错误。