2016-02-10 17 views
0

我使用RelativeLayout放置視圖使用LayoutParams並設置頂部(y座標)和左邊距(x座標)。我如何確保當我使用絕對位置放置視圖時,它們之間沒有任何重疊?我在某些地方遇到了重疊問題,現在唯一的工作就是擴大y值。如何確保視圖不會重疊放置在相對佈局

這裏是我的代碼放置的觀點:

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 

lp.leftMargin = x; 
lp.topMargin = y; 

那麼一旦我創建視圖我在正確的位置放置在佈局:

if(field.getType().equalsIgnoreCase("label")) 
{ 
    CSLabel label = (CSLabel) field; 
    TextView tv = new TextView(this); 
    tv.setText(Html.fromHtml(label.getText())); 

    rscroll.addView(tv, lp); 
} 

這裏是什麼,雖然發生的圖片有時:

enter image description here

文本在這種情況下,視圖和radiogroup是重疊的。有沒有什麼辦法來解決重疊編程?謝謝。

回答

1

您不太可能想使用x/y座標來設置視圖的位置,而是使用alignTop/alignBottom佈局參數來設置相對於其他視圖的位置,這將確保不會重疊發生!

此外請考慮使用不同的佈局,如LinearLayout與垂直orieantation,它更簡單的情況下,如你的效率更高。

另外請考慮用XML而不是Java代碼來定義佈局。