我尝试以编程方式在另一个relativelayout之后添加一个新的relativelayout而没有重叠。
LinearLayout ll = (LinearLayout)findViewById(R.id.mainLL);
ll.setOrientation(LinearLayout.VERTICAL);
RelativeLayout rl = new RelativeLayout(MainActivity.this);
rl.setId(2);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 50);//RelativeLayout.LayoutParams.WRAP_CONTENT
ll.addView(rl, lp);
TextView iTextView = new TextView(this);
iTextView.setTextSize(pthTextFontSize);
iTextView.setText("ok");
rl.addView(iTextView);
// finish adding the first relativelayout.
RelativeLayout rl2 = new RelativeLayout(MainActivity.this);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 50);
lp2.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp2.addRule(RelativeLayout.BELOW, rl.getId());
rl2.setLayoutParams(lp2);
ll.addView(rl2);
TextView iTextView2 = new TextView(this);
iTextView2.setTextSize(pthTextFontSize);
iTextView2.setText("abc");
rl.addView(iTextView2);
然而,单词“ok”和“abc”重叠。谁能帮我检查一下是什么问题? 非常感谢你的帮助。
简而言之: 有一个linearlayout(占据全屏)。然后我尝试添加两个linearlayouts.相对布局“rl2”的父级是“ll”,我试图将“rl2”放在“ll”的ALIGN_PARENT_LEFT和“rl1”之下,但它们重叠。
答案 0 :(得分:0)
我没有测试你的代码但是看到了逻辑,问题可能是因为你已经使用了ALIGN_PARENT_LEFT用于相对布局2.只是简单地解释一下,相对布局“rl2”的父级是rl1。因此,文本“abc”(在rl2中)在rl1的最左边部分对齐,其中存在“ok”。这就是他们重叠的原因。我自己没试过,但尝试使用:
lp2.addRule(RelativeLayout.ALIGN_LEFT);
告诉我它是否有帮助。一切顺利