2

我無法讓我的EditTexts適合並排共享相同空間的LinearLayout以編程方式將EditText添加到LinearLayout中android

這裏是做它的代碼:

LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     textFieldsLayout = (LinearLayout) findViewById(R.id.LinearLayout2); 

     for(int i=1; i <= 8; i++){ 

      final EditText ed = new EditText(this); 

      ed.setText("" + i); 

      ed.setInputType(2); 

      ed.setLayoutParams(lparams); 

      textFieldsLayout.addView(ed); 
     } 
    } 

這個代碼管理添加EditText我的佈局,但他們似乎並排,並且有空的空間在LinearLayout年底,當我改變PARAMS到WRAP_CONTENT,只有第一個EditText添加到佈局填充佈局和其他人不會出現在那裏,任何想法我在這裏做錯了什麼?

+0

後的你的代碼是如何對齊它們在視圖中的截圖,然後我們就可以想出一個辦法來幫助你更好。 – Sana 2012-08-01 17:14:49

+0

我已經得到它,但最後一個添加比以前更多一點點 – 2012-08-01 17:25:38

回答

2

添加layout_weight佈局PARAMS

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams 
         (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1f); 
+0

你知道爲什麼最後一個是獲得比第一個更多的空間? – 2012-08-01 17:26:00

+0

如果我們使用layout_weight屬性,它會調整等距離的所有視圖。 – 2012-08-01 17:41:47

+0

剛剛意識到最後一個需要更多的空間,因爲它們中有更多的數字。謝謝! – 2012-08-01 19:40:41

0

爲了讓您的觀點延伸到填充的LinearLayout,你必須確保寬度設置爲0,權重設置爲1

這將給他們一個甚至分裂。它基本上告訴系統推遲設置寬度直到它的父母被測量。然後上來讓孩子們填充他們擁有的任何空間。

+0

我試着將寬度設置爲0,然後添加1f到我的參數,但這隻會讓我的edittexts非常薄 – 2012-08-01 16:39:12

相關問題