Почему мой горизонтальный LinearLayout не резервирует достаточно высоты для его содержимого? - PullRequest
1 голос
/ 14 ноября 2010

Я работаю над приложением, которое отображает информацию о странах мира (я учусь на чем-то реальном, и у меня уже есть эти данные).Частью моего макета является LinearLayout, который содержит флаг страны и некоторую основную информацию.Справа от флага в таблице пять строк информации.Проблема в том, что LinearLayout использует только высоту флага для его общей высоты.Большинство флагов имеют высоту 2,5 строки, поэтому часть моей информации обрезана.Почему высота LiniearLayout не самая большая из двух его элементов?Любые предложения о том, что я могу сделать, чтобы сделать эту работу?

Вот определение рассматриваемой LinearLayout:

        <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
        <ImageView
            android:id="@+id/flag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/noflag" />
        <TableLayout
            android:id="@+id/info1"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginLeft="10dip">
            <TableRow>
                <TextView
                    android:id="@+id/capitallabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/capital_label"
                    style="?infoLabel"/>
                <TextView
                    android:id="@+id/capitalvalue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dip"
                    style="?infoValue"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/capitaltimelabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/capital_time_label"
                    style="?infoLabel"/>
                <TextView
                    android:id="@+id/capitaltimevalue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dip"
                    style="?infoValue"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/landarealabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/land_area_label"
                    style="?infoLabel"/>
                <TextView
                    android:id="@+id/landareavalue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dip"
                    style="?infoValue"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/waterarealabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/water_area_label"
                    style="?infoLabel"/>
                <TextView
                    android:id="@+id/waterareavalue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dip"
                    style="?infoValue"/>
            </TableRow>
            <TableRow>
                <TextView
                    android:id="@+id/coastlinelabel"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/coast_line_label"
                    style="?infoLabel"/>
                <TextView
                    android:id="@+id/coastlinevalue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="4dip"
                    style="?infoValue"/>
            </TableRow>
        </TableLayout>
    </LinearLayout>

Я попытался перевернуть таблицу и представление изображения, чтобы флаг былсправа и информация слева.Я надеялся, что высота LiniearLayout теперь будет высотой информационной таблицы.Не повезло, это все еще была высота флага.

Любая помощь будет оценена.

Спасибо,

Ян

1 Ответ

1 голос
/ 14 ноября 2010

Попробуйте android:layout_height="wrap_content" для вашего TableLayout.

...