2010-12-29 13 views
2

ボタンでテーブルレイアウトを動的に作成しようとしています。私はボタンでテーブルレイアウトを得ることができます。私はボタンの間にパディングが必要です。私はどのようにプログラム的に得ることができます。テーブルレイアウトの列にパディングを動的に設定する方法

私は私が....感謝を教えてください

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

BT次のコードを試してみました。

答えて

4

私は他のソリューションが動作する可能性がありSet margins in a LinearLayout programmatically

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

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

はい、それは良いです。 – fiction

3

あなたは要素間ではなく、TableRowの辺のパディングを設定しました。あなたがこれを行うことによって、のTableRow内のすべての個々のビューのパディングを設定することができ

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

をこれは本当に愚かですが、それは私が今の考えることができる最善の方法です。

+0

私は上記のコードを試しましたが、ここではうまくいきませんでした。私は理由を理解することをdonot ... :(とにかくあなたの返事のためのthnks ..フィクション – praveenb

0

ボタンに適用されるレイアウトのparamsにsetmarginを使用して、答えを見つけましたが、私がこれまでに発見した最も簡単で最良の解決策は、より多くの「空白」の列を追加することです間隔が必要な場所。動的にボタンを操作する場合は、ボタン間にテキストビューを動的に追加するだけです。私はあなたがTableLayoutを使用しようとしている場合にのみこれを提案しています。

関連する問題