2011-11-02 108 views
7

我是新來的android,並陷入了一個非常基本的問題。我正在處理一個應用程序,我需要在fling上滑動圖像。在每個圖像上,我必須動態添加按鈕。使用AddContentView()添加buttons.Everything工作正常,但我想動態設置按鈕的位置。我已經閱讀了很多地方,每個人都使用addView()來添加按鈕並設置其位置。我試過這個以編程方式設置按鈕的邊距

但它不工作。可以請任何人告訴我如何使用addContentView()設置按鈕的邊距(位置)。任何幫助將非常感激。

回答

10

使用addView設置按鈕邊距適用於我。確保將正確的LayoutParams對象傳遞給應該保持按鈕的ViewGroup。

FrameLayout fl = new FrameLayout(context); 
Button b = new Button(context); 
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height); 
params.setMargins(top, left, bottom, right); 
fl.addView(b,params); 

應該工作。

+1

Thankyou非常快速的響應。我使用addContentView(),因爲我想添加按鈕在圖像的頂部,而不需要從圖像的area.I已經嘗試過你的解決方案,但在addContentView()中指定這樣的參數hasn' t爲我工作。我使用以下代碼 按鈕b =新的按鈕(this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(50,50); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(50,50); params.setMargins(100,300,30,10); addContentView(b,params); 改變setMargins()中的值沒有任何作用。真的很抱歉可能是我正在做一些基本的錯誤,請幫我 – user1022105

+0

你嘗試過addView而不是addContentView了嗎?我從來沒有使用addContentView,因此不能說是否可以工作。但我只是在一個項目中使用setMargings和addView,就像我的例子。它對我來說效果很好。所以要麼嘗試使用addView,它可能會失敗,也許錯誤在別的地方。 –

+0

我想你已經忘記了「fl.setLayoutParams(params);」 – johann

相關問題