2014-11-06 145 views
0

我正在嘗試更改widthheightButtons我動態創建但以下代碼無法使用。 Buttons保持相同的默認大小。任何人都知道爲什麼這不起作用?通過代碼更改按鈕的寬度和高度

我認爲這可能與這一行做:

myButton.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

的問題可能是我不應該創建新LinearLayout PARAMS每次而是添加到現有的LayoutParam

你們認爲什麼?

public void onClick(View view) 
    { 

     LinearLayout linearLayout2 = new LinearLayout(view.getContext()); 

     linearLayout2.setOrientation(LinearLayout.HORIZONTAL); 

     LinearLayout.LayoutParams rlp = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.WRAP_CONTENT, 
       LinearLayout.LayoutParams.WRAP_CONTENT);  

     int size = enter_txt.getText().toString().length(); 

     for (int i=0; i<size; i++){ 
      Button myButton = new Button(view.getContext()); 
      myButton.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      myButton.setWidth(100); 
      myButton.setHeight(100); 
      myButton.setBackgroundResource(R.drawable.button); 
      linearLayout2.addView(myButton, rlp); 
     } 
    } 

回答

1

改變此密碼:

myButton.setWidth(100); 
myButton.setHeight(100); 

向該:

myButton.getLayoutParams().width = 100; 
myButton.getLayoutParams().height = 100; 

一個d是的,你的情況,你可以更換:

myButton.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

要:

myButton.setLayoutParams(rlp); 
+0

由於這是它! myButton.setLayoutParams(rlp)修復了它。我不確定是否可以使用rlp作爲LayoutParams,因爲我已經使用rlp將視圖添加到線性佈局中:linearLayout2.addView(myButton,rlp); – user2456977 2014-11-06 16:23:47

+0

@ user2456977歡迎您:)試試吧!使用rlp應該沒問題,因爲它也是帶有WRAP_CONTENT的LinearLayout – 2014-11-06 16:32:11

0

可以使用LinearLayout.LayoutParams的其它構造,其中接收的寬度和高度:

myButton.setLayoutParams(new LinearLayout.LayoutParams(100, 100)); 
+0

工作不因某種原因 – user2456977 2014-11-06 16:20:48