2012-11-22 203 views
2

我想要做的只是添加一個imageButton視圖作爲自定義視圖的子項,在右上角。我的自定義視圖擴展了Webview。將imageButton添加到我的自定義視圖中沒有問題,我只是無法將其移動到右上角。我需要以編程方式執行此操作,而不是使用xml。我永遠不會認爲這個簡單的東西需要我在這裏發佈,但我真的無法弄清楚。以編程方式在Android中的自定義視圖中添加子視圖

這裏是我使用添加ImageButton的當前自定義視圖是什麼,但它是在左上角:

public class customView extends WebView { 

     private void imageButtonInit() { 
     ImageButton closeImageButton = new ImageButton(getContext()); 
     Drawable image = getResources().getDrawable(com.package.image); 
     closeImageButton.setBackgroundDrawable(image); 
     closeImageButton.setLayoutParams(new RelativeLayout.LayoutParams(25, 25)); 
     closeImageButton.bringToFront(); 
     customView.this.addView(closeImageButton); 
     } 
    } 

我爲了它移動到右上角曾嘗試:

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(25, 25); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, -1); 
    closeImageButton.setLayoutParams(lp); 
    customView.this.addView(closeImageButton); 

除了:

FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(25, 25, Gravity.RIGHT|Gravity.TOP); 
    closeImageButton.setLayoutParams(lp); 
    customView.this.addView(closeImageButton); 

所有這些都導致的ImageButton爲是p系在左上角。這是我在這個網站上的第一篇文章,所以我希望這個問題的格式正確。請不要xml解決方案。感謝大家。

回答

1

我認爲你在其他兩種方法中所做的就是將你的CustomView設置爲具有這些佈局參數。你應該嘗試的是使用這種方法設置你的孩子的佈局參數;

customView.this.addView(child, params); 

其中child是你的圖像按鈕,params是佈局參數。

+0

感謝您的回答理查德。我其實打算寫closeImageButton.setLayoutParams(lp);那是一個錯字。抱歉。 –

+0

儘管您建議的方法看起來應該起作用,但該按鈕仍然保留在左上角。 –

+0

也許您的自定義視圖中還有其他設置未正確處理。什麼阻止你創建一個自定義的RelativeLayout,稱之爲你的自定義視圖,並且包括你的自定義網頁視圖和一個左上角設置的按鈕?它仍然會被包含在一個「視圖」中 –

相關問題