2015-04-15 2 views
0

Я новичок в разработке Android.android tablelayout фиксированные столбцы - не получить желаемые результаты

Я пробовал с LinearLayout и теперь, наконец, с TableLayout.

Мне нужен простой фиксированный прокручивать таблицу с 3 колонками, но я не могу получить единый список строк, чтобы делать то, что мне нужно ... Я имею ListView и ListActivity с его Adapter отсортирован.

В основном я хочу:

  • 3 колонки со всеми фиксированной ширины, но приспосабливаясь к другой экран размеров (таким образом, процентное соотношение показа?)
  • Первый столбец имеет заголовок и должен быть самым большим. Если текст превышает пространство, ellipsize это
  • Вторая колонка цена
  • Третья колонка является символом и должен быть в крайнее правое
|-----------------------------------------| 
| This title exceeds th....| $500 | Icon | 
| This title fits   | $1000 | Icon | 
| Other title    | $25 | Icon | 
| Another long title th... | $1200 | Icon | 
|-----------------------------------------| 

Это моя последняя xml:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TableRow> 
     <TextView 
      android:id="@+id/title" 
      android:layout_height="45dip" 
      android:layout_width="wrap_content" 
      android:layout_marginRight="10dip" 
      android:layout_weight="6" 
      android:ellipsize="end" 
      android:singleLine="true" 
      android:text="A long Title it is" 
      android:textSize="24sp" /> 


     <TextView 
      android:id="@+id/price" 
      android:layout_width="wrap_content" 
      android:layout_height="45dip" 
      android:layout_weight="3" 
      android:layout_marginRight="10dip" 
      android:ellipsize="marquee" 
      android:singleLine="true" 
      android:text="Price" 
      android:textSize="24sp" /> 

     <ImageButton 
      android:layout_weight="1" 
      android:id="@+id/cart" 
      android:gravity="end" 
      android:src="@drawable/cart" 
      android:layout_width="45dp" 
      android:layout_height="30dp" > 
     </ImageButton> 
    </TableRow> 
</TableLayout> 

В результате иногда значок находится не справа, а название tex t не имеет фиксированной ширины ...

Я искал много вопросов и пробовал много вещей (см. layout_weight), но он пока не работает. Благодарю.

ответ

1

В строке таблицы (или горизонтальной ориентации линейной компоновки) рекомендуется использовать android:layout_width="0dp" при работе с android:layout_weight

Не могли бы вы, пожалуйста, попробуйте установить layout_width атрибут 0dp. Я думаю, это сработает.

+0

К сожалению, нет. теперь я вижу только первые два символа первого столбца, а остальное исчезает по какой-то причине – faboolous

+0

Вы имеете в виду текст в столбце заголовка? –

+0

Я импортировал ваш макет. Работала идеально для меня, просто установив значения ширины в 0dp. Можете ли вы попытаться увеличить значение веса для названия? –