0

我尝试在另一个没有重叠的相对布局之后以编程方式添加一个新的相对布局。

    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”这个词是重叠的。谁能帮我检查一下有什么问题?非常感谢您的帮助。

简而言之:有一个线性布局(占据全屏)。然后我尝试添加两个线性布局。相对布局“rl2”的父级是“ll”,我尝试将“rl2”放在“ll”的 ALIGN_PARENT_LEFT 和“rl1”下方,但它们重叠。

4

1 回答 1

0

我没有测试你的代码,但看到逻辑,问题可能是因为你使用了 ALIGN_PARENT_LEFT 用于相对布局 2。简单解释一下,相对布局“rl2”的父级是 rl1。因此,文本“abc”(在 rl2 中)在 rl1 的最左侧对齐,其中存在“ok”。这就是它们重叠的原因。我自己没有尝试过,但尝试使用:

lp2.addRule(RelativeLayout.ALIGN_LEFT);

告诉我它是否有帮助。一切顺利

于 2013-03-30T15:51:44.210 回答