Java RelativeLayout所有程序未正确对齐
下面是它正在生成的代码和布局Java RelativeLayout所有程序未正确对齐,java,android,button,layout,textview,Java,Android,Button,Layout,Textview,下面是它正在生成的代码和布局 public void level1() { tList = getTList(level); bList = getBList(level); // textviews RelativeLayout.LayoutParams params00 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension); gameplayRL.addView(tL
public void level1() {
tList = getTList(level);
bList = getBList(level);
// textviews
RelativeLayout.LayoutParams params00 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
gameplayRL.addView(tList[0], params00);
RelativeLayout.LayoutParams params11 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params11.addRule(RelativeLayout.RIGHT_OF, tList[0].getId());
gameplayRL.addView(tList[1], params11);
RelativeLayout.LayoutParams params22 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params22.addRule(RelativeLayout.BELOW, tList[0].getId());
gameplayRL.addView(tList[2], params22);
RelativeLayout.LayoutParams params33 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params33.addRule(RelativeLayout.RIGHT_OF, tList[2].getId());
params33.addRule(RelativeLayout.BELOW, tList[0].getId());
gameplayRL.addView(tList[3], params33);
// buttons
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
gameplayRL.addView(bList[0], params1);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params2.addRule(RelativeLayout.RIGHT_OF, bList[0].getId());
gameplayRL.addView(bList[1], params2);
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params3.addRule(RelativeLayout.BELOW, bList[0].getId());
//params3.addRule(RelativeLayout.RIGHT_OF, bList[0].getId()); // this is the problem line
gameplayRL.addView(bList[2], params3);
}
请注意底部注释掉的第3行。标签为“3”的按钮,我希望位于“2”的下方。当我取消注释这行代码时,会出现下面的布局
我认为,通过取消注释这一行,它只会将按钮向右对齐,但它会使整个布局变得古怪。我如何才能实现我所追求的目标
编辑
即使使用此代码:
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(buttonDimension, buttonDimension);
params3.addRule(RelativeLayout.RIGHT_OF, tList[2].getId());
params3.addRule(RelativeLayout.BELOW, tList[0].getId());
gameplayRL.addView(bList[2], params3);
…生成此布局:
所以这很接近,但仍然不是理想的输出。为什么有TextView?@Squonk它们纯粹用于测试目的。它们不会出现在最终产品中。首先,你的第三张图片与第一张完全相同。第二,第二个布局是混乱的,因为其中有第四个文本视图,这迫使父布局水平扩展以适应它。我知道第一个和第三个图像是相同的。我刚才展示了两个单独的代码片段,它们都产生了不正确的布局。而且,第一个和第三个图像也有第四个文本视图,所以为什么这些父布局没有像第二个图像那样水平扩展呢?