2012-01-19 30 views
3

嘿大家,安卓:在運行時創建的按鈕在Java

import android.widget.Button; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.webpage); 

     but_action = new Button(getApplicationContext()); 
     but_action.setVisibility(Button.INVISIBLE); 
     toolbar.addView(but_action); 

MATCH_PARENT對於上面的代碼,這將創建一個不可見的按鈕,我使人們看到基於一些條件。這是有效的,按鈕上的邏輯也是如此。

問題是,按鈕的高度是靜態的,這是不可能的。我需要這個按鈕來簡單地匹配它的父母高度(因爲您可以在工具欄視圖中看到它,這只是一個水平線性佈局),因爲工具欄的高度在平板電腦大小的視圖中與在手機大小的視圖中不同。

我聽說我需要使用LayoutParams,但我會完全誠實的:沒有任何我嘗試驗證,當它做到:什麼都不做。而使用setHeight似乎只接受數值。

我有點不知道還有什麼可以嘗試的路障。

(也就是有什麼樣的浮動:權利;實時佈局?)

回答

12

這應該爲你做它:

LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); 
but_action.setLayoutParams(lp); 

注意,當你去導入你想要的LayoutParams選擇一個匹配你的父母的,所以在這種情況下,你會導入LinearLayout.LayoutParams

+0

明白了,你是對的:) – Viking

+2

這絕對有效,但在這個實施後的歡鬧時刻我被要求放置反正XML中的按鈕,所以設計師c應該找到。 *嘆*感謝雖然! – RedactedProfile

+0

Doh!很高興它爲你工作,但。現在,如果將來再次出現,你就知道該怎麼做。 – FoamyGuy