2010-12-29 5 views
2

Ich versuche, ein Tabellenlayout dynamisch mit Schaltflächen zu erstellen. Ich kann das Tabellenlayout mit Tasten erreichen. Ich brauche Polsterung zwischen den Knöpfen. Wie ich programmatisch werden kann.So legen Sie das Auffüllen von Spalten im Tabellenlayout dynamisch fest

Ich versuchte folgenden Code bt

private void showCowsTblField() 
{ 

    for (int row = 0; row < numberOfRowsInField-1; row++) 
    { 
     TableRow tableRow = new TableRow(this); 
     tableRow.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
     for (int column = 0; column < numberOfColumnsInField -1; column++) 
     { 
      blocks[row][column].setLayoutParams(new LayoutParams( 
        LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
      blocks[row][column].setPadding(blockPadding, blockPadding, blockPadding, blockPadding); 

      tableRow.addView(blocks[row][column]); 
      tableRow.setPadding(blockPadding, blockPadding, blockPadding, blockPadding); 
     } 
     tblCows.addView(tableRow,new TableLayout.LayoutParams( 
       LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    } 
} 

Bitte lassen Sie mich wissen .... Vielen Dank.

Antwort

4

fand ich Antwort, durch das Layout params mit setmargin auf Taste angewandt Set margins in a LinearLayout programmatically

LayoutParams layoutParams = new LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

layoutParams.setMargins(30, 20, 30, 0); 
+0

Ja, das ist besser. – fiction

3

Sie haben Padding der Kanten der TableRow festgelegt, nicht zwischen den Elementen.

Sie können dies in den TableRow Polsterung jeder einzelnen Ansicht verwenden, indem Sie:

for(int i = 0; i < tableRow.getVirtualChildCount(); i++){ 
    tableRow.getVirtualChildAt(i).setPadding(blockPadding, blockPadding, blockPadding, blockPadding); 
} 

Das ist wirklich dumm, aber es ist das Beste, was ich von jetzt denken kann.

+0

Ich versuchte oben Code, bt hier nicht funktioniert. Ich verstehe nicht den Grund .... :(sowieso thnks für Ihre Antwort .. Fiktion – praveenb

0

Andere Lösungen arbeiten können, aber die einfachste und beste Lösung, die ich bisher gefunden habe, ist mehr „blank“ Spalten hinzufügen wo du den Abstand brauchst. Wenn Sie die Schaltflächen dynamisch ausführen, fügen Sie einfach dynamisch eine Textansicht zwischen den Schaltflächen hinzu. Ich schlage das nur vor, wenn Sie versuchen, ein TableLayout zu verwenden.

Verwandte Themen