2012-11-26 103 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)來防止這種錯誤。