0
我想動態地將一些按鈕添加到RelativeLayout,但我的代碼不起作用。它將它們添加到顯示屏上的相同位置。RelativeLayout with buttons
private void createButtons() {
buttons = new ArrayList<Button>();
RelativeLayout bg = (RelativeLayout) findViewById(R.id.Bg);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
for(int i = 0; i < channels.size(); i++){
Button newButton = new Button(this);
newButton.setId(i);
newButton.setText(channels.get(i).getTitle());
buttons.add(newButton);
if(i > 0){
lp.addRule(RelativeLayout.RIGHT_OF, i-1);
bg.addView(newButton, lp);
}else{
bg.addView(newButton);
}
}
}
我該如何解決才能使其工作?
由於您爲每次迭代調用lp.addRule(),您的LayoutParams不會爲每次迭代包含一個(衝突)規則。也許應該在每次迭代中實例化LayoutParams? – rogerkk 2011-03-17 18:27:29