2016-09-14 88 views
0

我是android编程的新手。Android:以编程方式设置LinearLayout的重力

我只是发现XML不是设置布局的唯一方法。所以,我试图理解以编程方式设置布局。我一直在尝试改变按钮的位置。我怎样才能设置布局的重力,使按钮将被定位在预期的轴,例如bottomcenter

顺便说一句,是icicle同样的事情savedInstanceState

这是我偶然发现的编码。 你能告诉我设置重力的正确方法吗?

@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); 

回答

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

+0

告诉我,如果我可以进一步帮助你@薄荷 –

+0

谢谢。这行得通。按钮完美地位于底部。 savedInstanceState也是其中的正式参数呢? –

+0

“icicle”有时用作参数的名称,因为onSaveInstanceState()用于调用onFreeze()。 –

1

您需要使用setGravity()

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

+0

的一些性质谢谢@HaykAvanesyan –

1
yourLinearLayout.setGravity(Gravity.BOTTOM); 

这么简单

+0

这是非常简单的。谢谢@ Syn3sthete –

相关问题