簡體   English   中英

如何確保視圖放置在相對布局中時不重疊

[英]How to make sure views dont overlap when placed in a Relative Layout

我使用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);
}

這是有時發生的情況的圖片:

在此處輸入圖片說明

在這種情況下,textview和radiogroup是重疊的。 有什么方法可以以編程方式解決重疊問題嗎? 謝謝。

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

另外,請考慮使用其他布局,例如帶有Vertical orieantation的LinearLayout,在諸如您這樣的簡單情況下,它的效率要高得多。

另外,請考慮使用XML而不是Java代碼定義布局。

限制單選按鈕停留在文本視圖下方,或者限制文本視圖停留在單選按鈕上方。

使用布局參數和RelativeLayout.BELOW或RelativeLayout.ABOVE的addRule(int,int)方法。

http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#addRule(int,int)

使用``相對布局''提供的align_top,layout_below和其他屬性來對齊視圖。我也建議您通過XML而不是通過編程來對齊布局。

閱讀此書以獲得有關相對布局的更多信息http://developer.android.com/intl/pt-br/reference/android/widget/RelativeLayout.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM