Как установить столбец таблицы в 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>

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


person abhishek ameta    schedule 18.01.2012    source источник
comment
разместите свой код и укажите, с какими проблемами вы столкнулись.   -  person jeet    schedule 18.01.2012
comment
Я отредактировал, пожалуйста, скажите, как установить их в соответствии с колонкой.   -  person abhishek ameta    schedule 18.01.2012
comment
Вы когда-нибудь использовали этот android:stretchColumns="1" для макета таблицы.   -  person Praveenkumar    schedule 18.01.2012


Ответы (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 и ориентацией = "горизонтально". Если у вас несколько строк, имейте в виду, что на самом деле вы имеете дело с таблицей — все строки столбца будут располагаться точно друг над другом, а ширина столбца будет определяться самой широкой строкой.

person Boris Strandjev    schedule 18.01.2012