2016-09-14 39 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 –

相關問題