2012-04-23 88 views
0

我想在我的OnClickListener中添加一個視圖到RelativeLayout。在ClickListener中動態添加視圖

montrolButton.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
// myParent is a relative layout 
// newChild is an ImageView 
        myParent.addView(newChild); 
        requestLayout(); 
       } 
}); 

我看過HierarchyViewer,我看不到我的新孩子被添加。 如果我錯過任何東西,你能告訴我嗎?

+0

我想你需要添加setContentView(myParent); – kmb64 2012-04-23 22:35:39

+0

它應該像你這樣做(如果'myParent'是你的佈局層次結構的一部分)。添加子項後是否刷新了HierarchyViewer? – zapl 2012-04-23 22:37:37

回答

0

我剛剛嘗試了相同的代碼,它的工作原理應該如此。您的變量myParent可能存在問題,這不是您期望的內容。

此外,我不必致電requestLayout()增加的視圖出現在屏幕上。

可能試圖明確地獲得您的視圖的另一部分,並將其添加到那裏看看發生了什麼。還只是嘗試,你可以這樣做:

RelativeLayout rv = (RelativeLayout) this.findViewById(R.id.right3); 
    ProgressBar iv = new ProgressBar(this); 
    rv.addView(iv); 

,看看是否有什麼不對您的圖像視圖,而不是myParent

在它適用於任何情況下,如果這兩個元素都OK - 有沒有別的在一項活動中做。

0

您是否設置了新視圖(圖像視圖)的佈局屬性?