2013-10-14 269 views
1

我想要做這樣的事情:Android:如何以編程方式在視圖中添加視圖?

View v1= new View(this); 
v1.setBackgroundResource(R.drawable.pic1); 

View v2 = new View(this); 
v2.setBackgroundResource(R.drawable.pic2); 

v1.addView(v2); 

RelativeLayout.LayoutParams params; 
rl = (RelativeLayout) findViewById(R.id.activity_main); 
rl.addView(v1,params); 

我知道代碼是錯誤的。它只是表明我想如何做。

一些網站稱,viewGroup可能會幫助我實現這一目標。

我曾嘗試過,但從來沒有可以在屏幕上顯示v2。

有人能告訴我如何做到這一點嗎?

+0

你自己回答你的問題:只有ViewGroup可以addView() – pskink

+0

但是,當我添加VIewGroup進入relativeLayout,v2不能顯示在屏幕上。這是這個問題的主要目的。 – Ray

+1

你的onLayout方法是什麼?查看其他ViewGroup.onLayout實現 – pskink

回答

2

視圖不能包含其他視圖。它在Android中不能以這種方式工作。

如果您想在不同的視圖中放置視圖,則包含的視圖必須擴展ViewGroup類。

有幾類,可以幫助你實現這一目標:

  1. 的LinearLayout - 如果你希望你的意見,垂直或水平排列。
  2. RelativeLayout - 如果您希望您的視圖相對於彼此和/或容器定位
  3. 還有更多。

希望這會有所幫助。

+0

你的意思是說使用* Layout來實現這個概念嗎? 我從來沒有通過它,應該嘗試通過這種方式。 – Ray

+0

是的。如果視圖需要保存其他視圖,它應該是ViewGroup擴展視圖,如LinearLayout或RelativeLayout。 –

+0

謝謝,我會盡力做到這一點。 – Ray

0

看起來沒問題,但問題可能是您在相關佈局中創建了沒有參數的視圖。我也不知道你是否可以創建一個視圖對象認爲它必須是TextView,ImageView或類似的東西:)

相關問題