2012-04-10 45 views
1

可以說我在xml文件中創建了一個相對佈局,並且我在此佈局的某個位置放置了一個佔位符以備將來查看。這個未來視圖是另一個XML視圖中的另一個佈局。如何在代碼中做到這一點?我知道我必須誇大未來的觀點,但是當我將它添加到主佈局時,它最終成爲左上角的核心,而不是我爲它創建的地點持有者 謝謝將佈局添加到之前定義的特定位置的另一個佈局

+0

現在定義您的視圖的LayoutParams如下? – Qberticus 2012-04-10 04:14:59

回答

1

您可以在佈局圖視圖添加到任何地方,有觀爲RelativeLayout的父視圖,假設你要放置於(x,y)的觀點在屏幕上,找出佈局的在屏幕上的位置通過方法:

View.getLocationOnScreen() 

讓我們假設我們通過這種方法得到x1和y1。 現在通過視圖的絕對x,y座標 - 父親的絕對x1,y1找出視圖的未來(x,y)相對於父佈局的位置。讓我們假設我們發現差異爲x2,y2。您是否使用了`ViewStub`

View v = layoutInflater.inflate(R.layout.future_view, null); 
    RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.setMargins(x2, y2, 0, 0); 


    relativeLayout.addView(v,relativeParams) 
+0

感謝您的詳細解答。我喜歡相對距離的想法 – Snake 2012-04-10 16:01:36

1

忘記佔位符,只需像普通視圖一樣添加視圖,並指定創建時所需的參數。

View v = layoutInflater.inflate(R.layout.future_view, null); 
RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
v.addRule(RelativeLayout.ALIGN_WITH_PARENT_TOP); 
relativeLayout.addView(v,relativeParams) 
+0

非常好的答案,謝謝。 – Snake 2012-04-10 16:00:57