2 xiaoyan 12 xiaoyan_12 于 2013.09.22 17:32 提问

在 RelativeLayout 里一个按钮为什么不能和另一个按钮对齐?

在 RelativeLayout 里有两个钢琴键,我使用java代码把这两个按钮在 RelativeLayout 中一个挨一个对齐。
代码如下:

wk[0] = new Button(this);
wk[1] = new Button(this);
wk[0].setId(0);
wk[1].setId(1);
wkParams[0] = new RelativeLayout.LayoutParams(wkw,wkh);
wkParams[1] = new RelativeLayout.LayoutParams(wkw,wkh);

wkParams[0].addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
wkParams[1].addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
wkParams[1].addRule(RIGHT_OF,wk[0].getId());

relativeLayout.addView(wk[0],wkParams[0]);
relativeLayout.addView(wk[1],wkParams[1]);

但是现在获得的是wk[0] 上面的wk[1] ,我不能看见 wk[0]。

2个回答

sasuke38
sasuke38   2013.09.24 09:49
已采纳
改成这样试试看:
wk[0] = new Button(this);
wk[1] = new Button(this);
wk[0].setId(0);
wk[1].setId(1);
wkParams[0] = new RelativeLayout.LayoutParams(wkw,wkh);
wkParams[1] = new RelativeLayout.LayoutParams(wkw,wkh);

wkParams[0].addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
wk[0].setLayoutParams(wkParams[0]);

wkParams[1].addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
wkParams[1].addRule(RIGHT_OF,wk[0].getId());
wk[1].setLayoutParams(wkParams[1]);

relativeLayout.addView(wk[0]);
relativeLayout.addView(wk[1]);
zhenglingkun
zhenglingkun   2013.09.23 17:07

wkParams[1].addRule(RelativeLayout.RIGHT_OF,wk[0].getId());看看是不是这个原因?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!