如何动态地将填充设置为表布局中的列

时间:2010-12-29 09:51:23

标签: android android-layout tablelayout

我正在尝试动态创建带有按钮的表格布局。我能够通过按钮获得表格布局。我需要在按钮之间填充。我怎样才能以编程方式获得。

我尝试了以下代码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));  
    }
}

请让我知道....谢谢。

3 个答案:

答案 0 :(得分:4)

我找到了答案,将setmargin用于应用于按钮Set margins in a LinearLayout programmatically

的布局参数
LayoutParams layoutParams = new LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

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

答案 1 :(得分:3)

您已经设置了TableRow边缘的填充,而不是其元素之间的填充。

您可以通过以下方式设置TableRow中每个视图的填充:

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

这真的很愚蠢,但这是我现在能想到的最好的。

答案 2 :(得分:0)

其他解决方案可能有效,但到目前为止我发现的最简单,最好的解决方案是在需要间距的位置添加更多“空白”列。如果您正在动态执行按钮,则只需动态地在按钮之间添加文本视图。如果您尝试使用TableLayout,我只是建议这样做。