通过代码更改按钮的宽度和高度
问题描述:
我正在尝试更改width
和height
的Buttons
我动态创建但以下代码无法使用。 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);
答
可以使用LinearLayout.LayoutParams
的其它构造,其中接收的宽度和高度:
myButton.setLayoutParams(new LinearLayout.LayoutParams(100, 100));
+0
工作不因某种原因 – user2456977 2014-11-06 16:20:48
由于这是它! myButton.setLayoutParams(rlp)修复了它。我不确定是否可以使用rlp作为LayoutParams,因为我已经使用rlp将视图添加到线性布局中:linearLayout2.addView(myButton,rlp); – user2456977 2014-11-06 16:23:47
@ user2456977欢迎您:)试试吧!使用rlp应该没问题,因为它也是带有WRAP_CONTENT的LinearLayout – 2014-11-06 16:32:11