Android 按钮以编程方式填充整个布局

Android 按钮以编程方式填充整个布局,android,layout,button,Android,Layout,Button,我想问安卓开发者一个问题。我有一个带有按钮的布局(以编程方式开发,而不是使用xml),我希望按钮现在可以填充整个布局,但目前它不能填充整个布局,我不知道为什么,我以为我已经用按钮的重力和布局参数正确地设置了所有内容,但这里是我所拥有的。如果你能给我指出正确的方向,我将非常感激!谢谢 LinearLayout bottom = new LinearLayout(this); bottom.setOrientation(LinearLayout.HORIZONTAL); LinearLayout

我想问安卓开发者一个问题。我有一个带有按钮的布局(以编程方式开发,而不是使用xml),我希望按钮现在可以填充整个布局,但目前它不能填充整个布局,我不知道为什么,我以为我已经用按钮的重力和布局参数正确地设置了所有内容,但这里是我所拥有的。如果你能给我指出正确的方向,我将非常感激!谢谢

LinearLayout bottom = new LinearLayout(this);
bottom.setOrientation(LinearLayout.HORIZONTAL);  
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.FILL;
bottom.setLayoutParams(params);  

bottom.setBackgroundColor(Color.BLUE);

Button eqbttn = new Button(this);
eqbttn.setText("=");
eqbttn.setOnClickListener(new OnClickListener(){
    public void onClick(View v) {

    }
});
bottom.addView(eqbttn);

您仅将
匹配\u父项
大小应用于
线性布局
。你也需要把它应用到按钮上

Button eqbttn = new Button(this);
LinearLayout.LayoutParams eqparams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
eqbttn.setLayoutParams(eqbttn);
eqbttn.setText("=");
eqbttn.setOnClickListener(new OnClickListener(){
    public void onClick(View v) {

    }
});
bottom.addView(eqbttn);
这将强制按钮垂直和水平填充布局。如果您需要布局本身占据整个屏幕,请将其
WRAP\u内容
也更改为
MATCH\u PARENT


而且在这种情况下,,您不需要
重力。请在
LinearLayout
上填充布局参数

是否希望它水平和垂直填充整个屏幕?您是从活动类还是视图类执行此操作?采用相对布局,而不是直线和直线布局。布局参数params=新建LinearLayout.layoutparms(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);像这样做有一个扩展,有一个addView的定义,它将layout params作为参数,因此您可以执行bottom.addView(eqbttn,new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));并删除手动创建、存储和设置按钮参数的两行