2011-01-27 84 views
6

在表格佈局我有一個tablerow的,並在tablerow的我有6個編輯的文本框,我想設置佈局利潤率爲6編輯文本框如何設置編輯文本框的佈局邊距?

TableLayout t1=(TableLayout)findViewById(R.id.table_layout01); 

    TableRow tr1=new TableRow(inventory.this); 
    tr1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 


    tr1.setBackgroundColor(Color.BLACK); 
    EditText ed6=new EditText(inventory.this); 
    //ed6.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    /*ViewGroup.MarginLayoutParams editmargin=new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.FILL_PARENT,ViewGroup.MarginLayoutParams.WRAP_CONTENT); 
    editmargin.setMargins(leftMargin, rightMargin, topMargin, bottomMargin);*/ 


    ed6.setTextColor(Color.BLACK); 
    ed6.setBackgroundColor(Color.WHITE); 


    ed6.setText("1"); 
     tr1.addView(ed6); 



    EditText ed7=new EditText(inventory.this); 
    //ed7.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed7.setTextColor(Color.BLACK); 
    ed7.setBackgroundColor(Color.WHITE); 
    ed7.setText("2"); 

    tr1.addView(ed7); 

    EditText ed8=new EditText(inventory.this); 
    //ed8.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed8.setTextColor(Color.BLACK); 
    ed8.setBackgroundColor(Color.WHITE); 
    ed8.setText("3"); 

    tr1.addView(ed8); 

    EditText ed9=new EditText(inventory.this); 
    //ed9.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed9.setTextColor(Color.BLACK); 
    ed9.setBackgroundColor(Color.WHITE); 
    ed9.setText("4"); 

    tr1.addView(ed9); 

    EditText ed10=new EditText(inventory.this); 
    //ed10.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed10.setTextColor(Color.BLACK); 
    ed10.setText("5"); 
    ed10.setBackgroundColor(Color.WHITE); 

    tr1.addView(ed10); 

    EditText ed11=new EditText(inventory.this); 
    //ed11.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed11.setTextColor(Color.BLACK); 
    ed11.setText("6"); 
    ed11.setBackgroundColor(Color.WHITE); 

    tr1.addView(ed11); 

    t1.addView(tr1); 

回答

4

編輯:
我會嘗試與下面的XML(你當然會更新ID等)。 xml中的「魔術」是它在TextView(和第二行的EditText's)之間均勻分配所有可用寬度。

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <!-- The first "row" -->  
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="TextView 01" 
      android:id="@+id/textView01" /> 

     <!-- Here you'd add your other five TextView's accordingly --> 

    </LinearLayout> 

    <!-- The second "row" -->  
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <EditText 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="TextView 01" 
      android:id="@+id/editText01" /> 

     <!-- Here you'd add your other five EditText's accordingly --> 

    </LinearLayout> 
</LinearLayout> 

在Java代碼中,你可以再訪問您的EditText的觀點一樣:

EditText editText01 = (EditText) findViewById(R.id.editText01); 
editText01.setText("1"); 

現在我忘記了,你需要以編程方式創建您的EditText的事實。你真的真的需要在Java中創建它們嗎? (爲什麼?)

OLD答:
如果你只是想設置佈局邊距您的EditText視圖我quess您可以使用setMargins(left, top, right, bottom)函數調用的LayoutParams變量。

int left = 6; 
int top = 12; 
int right = 6; 
int bottom = 6; 

TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(left, top, right, bottom); 

EditText edXY = new EditText(inventory.this); 
edXY.setLayoutParams(params); 

如果你最終要均勻地分佈在錶行六個的EditText視圖中的所有可用空間,我建議你看看下面的帖子:2-column TableLayout with 50% exactly for each column

+0

日Thnx您的答覆先生......但它不工作 – Arun 2011-01-27 10:44:55

8

首先你應該知道:根據Official Android Dev Pages,視圖(和一個TextView派生自視圖)不支持設置邊距,但視圖組(如LinearLayoutRelativeLayout等)。

所以你可以做的是以下幾點:

TableLayout.LayoutParams params = new TableLayout.LayoutParams(); 
params.setMargins(5, 5, 5, 5); 
TextView view = new TextView(this); 
view.setLayoutParams(params); 

這將會爲所有兒童邊距設置爲5個像素 - 我想它和它的工作對我來說(雖然與垂直對齊方式LinearLayout)。給它一個鏡頭,讓我知道如果我可以進一步幫助:)。

乾杯,

Ready4Fajir

相關問題