繁体   English   中英

如何在android中创建线性布局和中心按钮?

[英]How to create linear layout and center buttons in it in android?

在android中如何使用java插入线性布局,并在水平布局中有三个按钮,并使按钮居中。

所以基本上我想要一个具有三列和一行的水平线性布局,每列具有相同的宽度,并插入在每个布局单元格中垂直和水平居中的图像按钮。

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
    layout.setLayoutParams(params);

有谁知道如何做到这一点?

谢谢。

您可以通过将布局的重力设置为水平居中来将所有子视图居中放置在布局中:

LayoutParams layout_params = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT, Gravity.CENTER_HORIZONTAL);

然后使用新构造的LayoutParams进行addView

您可以将weightsum = 3用于linearlayout,并将layout_weight = 1用于每个按钮。 查看详细代码。 我希望这将有所帮助。 祝好运 :)

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    layout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    layout.setLayoutParams(params);

    layout.setWeightSum(3);

    for (int i = 0; i < 3; i++) {
        LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        btnParams.weight = 1.0f;

        Button btn = new Button(this);
        btn.setText("Btn");
        btn.setLayoutParams(btnParams);

        layout.addView(btn);
    }

    setContentView(layout);
    }
}

或者这个代码更好但更复杂^^

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout mainLayout = new LinearLayout(this);
    mainLayout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    mainLayout.setLayoutParams(params);

    mainLayout.setWeightSum(3);

    for (int i = 0; i < 3; i++) {
        LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        Button btn = new Button(this);
        btn.setText("Btn");
        btn.setLayoutParams(btnParams);

        LinearLayout childLayout = new LinearLayout(this);
        LinearLayout.LayoutParams childParam = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        childParam.weight = 1.0f;

        childLayout.setLayoutParams(childParam);
        childLayout.setGravity(Gravity.CENTER);
        childLayout.addView(btn);

        mainLayout.addView(childLayout);
    }

    setContentView(mainLayout);
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM