Как установить столбец таблицы в android

У меня возникли трудности с настройкой параметров макета строк таблицы (содержащих текстовые представления).

Я хочу добавить несколько столбцов, чтобы получить хороший макет. Я делаю это динамически. (в коде)

<TableRow> 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="bye"/>
</TableRow>

Я хочу, чтобы эти два текстовых изображения стали соответственно двумя столбцами и макетом на экране.

Ответ 1

То, что вы уже написали, должно фактически создать два столбца, дело в том, что они могут не располагаться так, как вы ожидаете на экране - столбцы будут как можно более узкими. Тег TableLayout в макете Android имеет несколько атрибутов. Одна из них - это растягивающие столбцы - если данные описанные столбцы будут растянуты так, чтобы заполнить всю указанную ширину. Если вам нужно, чтобы все они растягивались равномерно, используйте звезду, если вы хотите, чтобы какой-либо конкретный столбец растягивался, покрывая оставшееся пространство, используйте свой индекс на основе 1 (вы можете указать группу индексов). См. Здесь:

<TableLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:stretchColumns="0,1" >
   <TableRow android:layout_width="fill_parent"> 
     <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="ok"    
      />
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="bye" />
   </TableRow>
</TableLayout>

Кстати, если вам нужна только одна строка, вы можете сделать то же самое с LinearLayout и ориентацией = "horizontal". Если у вас несколько строк, имейте в виду, что вы действительно имеете дело с таблицей - все строки столбца будут расположены точно один над другим, а самая широкая строка будет определять ширину столбца.