Как динамически установить отступы для столбцов в макете таблицы - PullRequest
2 голосов
/ 29 декабря 2010

Я пытаюсь создать макет таблицы с помощью кнопок динамически. Я могу получить макет таблицы с помощью кнопок. BT мне нужно заполнение между кнопками. Как я могу получить программно.

Я попробовал следующий код 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 ]

4 голосов
/ 29 декабря 2010

я нашел ответ, используя setmargin для параметров макета, примененных к кнопке Установить поля в LinearLayout программно

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

layoutParams.setMargins(30, 20, 30, 0);
3 голосов
/ 29 декабря 2010

Вы установили заполнение краев TableRow, а не между его элементами.

Вы можете установить заполнение каждого отдельного представления в TableRow, выполнив следующее:

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

Это действительно глупо, но это лучшее, что я могу придумать прямо сейчас.

0 голосов
/ 30 августа 2012

Другие решения могут работать, но самое простое и лучшее решение, которое я нашел до сих пор, - это добавить больше «пустых» столбцов, где вам нужно расстояние. Если вы делаете кнопки динамически, просто добавьте текстовое представление между кнопками динамически. Я только предлагаю это, если вы пытаетесь использовать TableLayout, хотя.

...