我正在开发一个显示世界各国信息的应用程序(我正在学习一些真实的东西,我已经有了这些数据)。我的部分布局是一个包含国家国旗和一些基本信息的 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>
I tried reversing the table and the image view so the flag was on the right and the information on the left. I was hoping that the height of the LiniearLayout would now be the height of the information table. No luck it was still the height of the flag.
Any help would be appreciated.
Thanks,
Ian