Android:以编程方式设置LinearLayout的重力

时间:2016-09-14 07:58:15

标签: android android-layout android-studio gravity layoutparams

我是android编程的新手。

我发现xml不是设置布局的唯一方法。所以,我试图理解以编程方式设置布局。我一直试图改变按钮的位置。如何设置布局重力以使按钮位于预期的轴上,比如bottomcenter

顺便说一下,iciclesavedInstanceState相同吗?

这是我偶然发现的编码。 你能否告诉我设定引力的正确方法?

 @Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    LinearLayout one = new LinearLayout(this);
    myButton1 = new Button1(this);
    one.addView(myButton1,
        new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            0));
    myButton2 = new Button2(this);
    one.addView(mButton2,
        new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            0));
    setContentView(one);

3 个答案:

答案 0 :(得分:4)

我想,你正在寻找

LinearLayout one = new LinearLayout(this);

        one.setGravity(Gravity.BOTTOM | Gravity.CENTER);  //to show LinearLayout gravity

        Button myButton1 = new Button(this);
        one.addView(myButton1,
                    new LinearLayout.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        0));
        myButton1.setText("First");
        myButton1.setGravity(Gravity.CENTER);   //to show text gravity in button

        Button myButton2 = new Button(this);
        one.addView(myButton2,
                    new LinearLayout.LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        0));
        myButton2.setText("Second");
        myButton2.setGravity(Gravity.CENTER);   //to show text gravity
        setContentView(one);
  

icicle有时被用作参数的名称。它只是一个   其中一个形式参数onCreate的占位符采用一个Bundle参数。这取决于你怎么称呼它。

LinearLayout的一些属性https://stackoverflow.com/a/19065951/2826147

答案 1 :(得分:1)

您需要使用setGravity()

例如button.setGravity(Gravity.CENTER | Gravity.BOTTOM);

答案 2 :(得分:1)

yourLinearLayout.setGravity(Gravity.BOTTOM);

简单就是那个