通过代码更改按钮的宽度和高度

问题描述:

我正在尝试更改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); 
     } 
    } 

改变此密码:

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

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

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

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