2015-12-11 2 views
0

Я хочу, чтобы этот TextView заполнил родительский элемент, но мой код не работает.TextView FILL_PARENT не работает

Вот мой код:

TableLayout tableLayout = new TableLayout(this); 

    TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams(); 
    TableRow.LayoutParams param = new TableRow.LayoutParams(); 

    tableRowParams.setMargins(1, 1, 1, 1); 
    param.span = 2; 
    param.setMargins(1, 1, 1, 1); 

    int trainIndex = 0; 
    int stationIndex = 1; 


    for(int i = 0; i < 6; i++){ 
     TableRow row = new TableRow(this); 

     if(i == 0){ 
      TextView text = new TextView(this); 

      text.setText("Way"); 
      text.setBackgroundColor(Color.GRAY); 
      text.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
       LayoutParams.WRAP_CONTENT)); 
      row.addView(text, tableRowParams); 

      for(int j = 0; j < 4; j++) { 
       TextView text1 = new TextView(this); 

       text1.setText(getInfo(0, stationIndex)); 
       text1.setBackgroundColor(Color.GRAY); 
       row.addView(text1, param); 
       stationIndex++; 
      } 
     }else { 

      for (int j = 0; j <= 8; j++) { 
       TextView text = new TextView(this); 


       if(j == 0){ 
        text.setText(getInfo(1,trainIndex)); 
        text.setBackgroundColor(Color.GRAY); 
        row.addView(text, tableRowParams); 
        trainIndex++; 
       }else { 
        text.setText(" train " + j); 
        text.setBackgroundColor(Color.GRAY); 
        row.addView(text, tableRowParams); 
       } 
      } 
     } 
     tableLayout.addView(row); 
    } 

    setContentView(tableLayout); 

Когда я применяю макет Params к TextView он не работает, а если текст не очень долго она вызывает белое пространство в клетках, я хочу, чтобы все ячейки имеют серые задний план.

Вот пример, как это выглядит: enter image description here

Что я делаю неправильно?

+0

что это выход ..? –

ответ

0

Вы забыли установить LayoutParams для TextView. По умолчанию используется WRAP_CONTENT для ширины и высоты.

Кроме того, использование MATCH_PARENT вместо FILL_PARENT

EDIT

Попробуйте это:

TableRow row = new TableRow(this); 
TextView text = new TextView(this); 
text.setText("Way"); 
text.setBackgroundColor(Color.GRAY); 
text.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 
        LayoutParams.WRAP_CONTENT)); 
row.addView(text); 
+0

Извините, на самом деле я хочу, чтобы мой TextView match_parent. – gigs

+0

В этом проблема. По умолчанию TextView не соответствует match_parent, и вы не меняете его в коде. Проверьте мои изменения. – geNia

+0

еще ничего, вот этот текст представление в XML: gigs

0

Убедитесь, что ваш контейнер имеет FILL_PARENT свойство

TableLayout tableLayout = new TableLayout(this); 
tableLayout.setStretchAllColumns(true); 
tableLayout.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.FILL_PARENT)); 
Смежные вопросы