为什么我的水平LinearLayout没有为其内容保留足够的高度?

时间:2010-11-14 14:54:53

标签: android android-layout android-linearlayout

我正在开发一个显示有关世界各国信息的应用程序(我正在学习一些真实的东西,而且我已经掌握了这些数据)。我的部分布局是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 个答案:

答案 0 :(得分:1)

android:layout_height="wrap_content"尝试TableLayout