Ошибка макета Android в 1.6 против 2.2 - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть странная ошибка в файле макета.Я новичок в Android, так что, возможно, я что-то упустил.Я сократил пример до минимума, чтобы облегчить ваше понимание проблемы:

У меня есть простой список с ListAdapter, который должен отображать строку текста со значком рядом с ним.Значок должен быть центрирован по вертикали, если текст выше, чем значок.

Если я оставлю атрибут "center", образец будет работать (элемент списка получает правильную высоту), но как только я включуэто, я получаю ошибку.

Есть идеи, как решить эту проблему?(Кстати, мне нужен tableLayout для растягивания столбцов, не уверен, есть ли другой способ для этого)

Исходный код XML для строки выглядит так:

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1">
<TableRow>

    <TextView
            android:height="30dp"
            android:width="30dp"
            android:background="@color/blue"
            android:layout_gravity="center_vertical"
            />

    <TextView
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textSize="22dp"
            android:layout_width="120dp"
            android:layout_gravity="left"
            android:background="@color/yellow"
            android:id="@+id/simple_list_row_text1"/>

</TableRow>

Желаемый результат (который работает на более высоких версиях Android без проблем):

working

И изображение на Android 1.6

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 апреля 2011

Обходной путь решения:

 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="wrap_content">

<LinearLayout android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:gravity="center">

    <TextView
            android:layout_height="30dp"
            android:layout_width="30dp"
            android:background="@color/blue"
            />
</LinearLayout>

<TextView
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="22dp"
        android:layout_width="120dp"
        android:layout_gravity="left"
        android:background="@color/yellow"
        android:id="@+id/simple_list_row_text1"/>

0 голосов
/ 15 апреля 2011

Дайте всей Табличной Строке центральную вертикальную гравитацию.И, конечно же, переместите фиксированную ширину / высоту из TextView в TableRow и оставьте TextView равным wrap_height

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...